数据结构学习笔记(2)
4. 抽象数据类型
抽象数据类型简称ADT(Abstract Data Type),是指一个数学模型以及定义在该模型上的一组操作。
5. 抽象数据类型的作用
以浅显易懂的语言描述某一个数学模型的操作流程,而且只要其数学特性不变,都不会影响外部使用。
6. 算法基础
(1)算法有哪几个特性?
a. 有穷性——在有穷步之后结束
b. 确定性——不存在二义性
c. 可行性——能够在计算机中执行
d. 输入——有零个或多个输入
e. 输出——有一个或者多个输出。没有输出的算法是没有意义的。
(2)算法和计算机程序的区别是什么?
算法是一种思维过程,不局限于任何一种编程语言;而计算机程序则是由一种确定的编程语言所编写,是算法的具体实现形式。
(3)一个好的算法应该具备哪些特性?
a. 正确性;
b. 可读性;
c. 健壮性;
d. 通用性;
e. 效率与存储量要求——效率指的是采用该算法的程序执行的时间;存储量需求指的是采用该算法的程序在执行过程中所需要的最大存储空间。一般来说,这与问题的规模有关。
(4)与算法时间复杂度有关的多项式的大小比较
O(1)<O(㏒n)<O(n)<O(n㏒n)<O(n的平方)<O(n的三次方);
指数关系为:O(2的n次方)<O(n!)<O(n的n次方)。
(5)算法的空间复杂度是指什么?
是指算法编写成程序之后,在计算机中运行时所需存储空间大小的度量。记作S(n)=O(f(n)),其中n为问题的规模。而存储空间则一般包三个方面:
a)指令常量变量所占用的存储空间;
b)输入数据所占用的存储空间;
c)辅助空间。
一般的,算法的空间复杂度指的是辅助空间。
转载于:https://blog.51cto.com/kylepeng/1734347
数据结构学习笔记(2)相关推荐
- 数据结构学习笔记(七):哈希表(Hash Table)
目录 1 哈希表的含义与结构特点 1.1 哈希(Hash)即无序 1.2 从数组看哈希表的结构特点 2 哈希函数(Hash Function)与哈希冲突(Hash Collision) 2.1 哈希函 ...
- 数据结构学习笔记(六):二叉树(Binary Tree)
目录 1 背景知识:树(Tree) 2 何为二叉树(Binray Tree) 2.1 二叉树的概念与结构 2.2 满二叉树与完全二叉树 2.3 二叉树的三种遍历方式 3 二叉树及其遍历的简单实现(Ja ...
- 数据结构学习笔记(五):重识字符串(String)
目录 1 字符串与数组的关系 1.1 字符串与数组的联系 1.2 字符串与数组的区别 2 实现字符串的链式存储(Java) 3 子串查找的简单实现 1 字符串与数组的关系 1.1 字符串与数组的联系 ...
- 数据结构学习笔记(四):重识数组(Array)
目录 1 数组通过索引访问元素的原理 1.1 内存空间的连续性 1.2 数据类型的同一性 2 数组与链表增删查操作特性的对比 2.1 数组与链表的共性与差异 2.2 数组与链表增删查特性差异的原理 3 ...
- 数据结构学习笔记——顺序表的基本操作(超详细最终版+++)建议反复看看ヾ(≧▽≦*)o
目录 前言 一.顺序表的定义 二.顺序表的初始化 三.顺序表的建立 四.顺序表的输出 五.顺序表的逆序输出 六.顺序表的插入操作 七.顺序表的删除操作 八.顺序表的按位和按值查找 基本操作的完整代码 ...
- Python数据结构学习笔记——链表:无序链表和有序链表
目录 一.链表 二.无序链表 实现步骤分析 三.无序链表的Python实现代码 四.有序链表 实现步骤分析 五.有序链表的Python实现代码 结语 一.链表 链表中每一个元素都由为两部分构成:一是该 ...
- Python数据结构学习笔记——队列和双端队列
目录 一.队列的定义 二.队列 实现步骤分析 三.队列的Python实现代码 四.队列的应用 六人传土豆游戏 五.双端队列的定义 六.双端队列 实现步骤分析 七.双端队列的Python实现代码 八.双 ...
- Python数据结构学习笔记——栈
目录 一.栈的定义和特性 (一)栈的定义 (二)栈的反转特性 二.实现分析步骤 三.栈的Python实现代码 四.栈的应用 (一)匹配圆括号 (二)匹配符号 (三)模2除法(十进制转二进制) (四)进 ...
- 数据结构学习笔记:利用栈实现进制转换
数据结构学习笔记:利用栈实现进制转换 一.除基倒取余法示意图 二.编写十进制转换成二进制Python程序 1.源代码 2.运行结果 其实Python提供了一
- 数据结构学习笔记:利用Python列表实现栈结构
数据结构学习笔记:利用Python列表实现栈结构 利用Python列表实现栈结构.有两种实现方式: 1.将列表的末尾(rear)作为栈顶(top) 2.将列表的前端(front)作为栈顶(top) 一 ...
最新文章
- 2022-2028年中国三轴陀螺仪行业市场深度分析及投资前景分析报告
- MySQL Order by 语句用法与优化详解
- 设置socket IP_TOS选项 (转载)
- 自定义 ArrayList
- python笔记:load_ext autoreload
- 《疯狂Java讲义精粹》读书笔记2 ------ 多态
- java jsp中控件绑定_jsp页面常用控件
- MFC显示JPG,bmp图片
- Python安装Matplotlib,wordcloud,jieba第三方库
- 训练日志 2019.1.14
- 数据绑定,vs2005
- Redis基础(十一)——缓存穿透和缓存雪崩
- 【Format】ASF/WMV 文件格式解析
- [Go] 理解计算机负数的表示以及整数范围
- 国企面试-260题-单选题 下列哪组成语反映了同一种人际关系: A 琴瑟和鸣 破镜重圆 B 负荆请罪 载舟覆舟 C 结草衔环 青梅竹马 D 相濡以沫 舐犊情深
- ansys添加力矩_Ansys加力矩.doc
- Activiti7工作流引擎:基础篇(一) 简介与IDEA插件安装
- python语言无需翻译成_python实现谷歌翻译
- 手把手教你做多重线性逐步回归
- [我可怜的诺基亚3110c!]
热门文章
- NameError: name ‘sess‘ is not defined
- 概率机器人总结——占用栅格地图先实践再推导
- 数字图像处理特效中彩色墨水效果的设计与实现
- 【赠书】深入浅出Python量化交易实战
- 【星球知识卡片】移动端高效率的分组网络都发展到什么程度了?
- 【完结】 12篇文章带你完全进入NLP领域,掌握核心技术
- 全球及中国高强度钢行业发展态势与市场规模分析报告2022版
- 全球与中国青霉素类药品市场竞争现状及发展前景预测报告2022-2028年
- 全球与中国聚硫聚合物市场发展前景与投资可行性分析报告2021年版
- php根据IP获取所有地,腾讯IP API