转载请注明链接: http://blog.csdn.net/feather_wch/article/details/50477303
数据结构和算法基本概念
版本号:2018/09/25-1(23:00)
特别鸣谢兄弟提供的帮助:
- Jun Shibata 丶
- Sank
数据结构(10)
1、数据结构的定义是什么?
数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
2、用自己的话简单讲讲什么是数据结构?
一组数据的存储结构
3、算法的定义是什么?
算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
4、用自己的话简单讲讲什么是算法?
操作数据的一组方法
5、数据结构和算法有什么关系?
- 相辅相成的关系
- 数据结构是为算法服务的
- 算法需要作用在特殊的数据结构上
6、为什么二分查找算法适用于数组而不适用于链表?
- 数组具有随机访问的特点。
- 链表不支持随机访问, 本身是顺序访问的。
- 链表也可以使用二分查找,但是查找过程中效率低下,已经失去了二分查找的优势。
7、什么是随机访问?
- 数据在内存中是按顺序存放,可以通过下标直接定位到某一个元素存放的位置
- 如: a[3]、a[10]
8、什么是二分查找算法?
- 二分查找也称折半查找(Binary Search),是一种效率较高的查找方法。
- 算法要求:
- 必须采用顺序存储结构(如数组就是顺序存储,能够随机访问)。
- 必须按关键字大小有序排列(需要有序或者先进行排序)。
- 算法介绍:
如果将一组数据从小到大的顺序排序(a[0]~a[10]
),然后计算出中间索引值(5
)。然后标胶目标值target
和a[5]
的大小。如果target<a[5]
,则在中间索引值的左边范围内寻找(a[0]~a[4]
)。如果target>a[5]
,则在中间索引值的右边范围内寻找(a[6]~a[10]
)。如果target=a[5]
, 则返回中间索引值(5)。如此反复。
9、数据结构和算法最重要的概念是什么?
- 复杂度分析
- 占据了数据结构和算法的半壁江山
- 是一种能够分析效率和资源消耗的方法
10、时间复杂度越高,执行效率就越低吗?
- 理论上时间复杂度越高,执行效率就越低。
- 但实际上时间复杂度与执行时间并不划等号
- 一定场景中O(logn)要比O(1)算法还要快(目前我还不知道,王争在后面会去讲)
问题汇总(13)
-
数据结构的定义是什么?
-
用自己的话简单讲讲什么是数据结构?
-
算法的定义是什么?
-
用自己的话简单讲讲什么是算法?
-
数据结构和算法有什么关系?
-
为什么二分查找算法适用于数组而不适用于链表?
-
什么是随机访问?
-
什么是二分查找算法?
-
数据结构和算法最重要的概念是什么?
-
时间复杂度越高,执行效率就越低吗?
-
【☆】什么是顺序访问?
链表在内存中不是按顺序存放的,而是通过指针连在一起,为了访问某一元素,必须从链头开始顺着指针才能找到某一个元素
-
【☆】什么是顺序存储结构?
- 顺序存储结构是存储结构类型中的一种
- 该结构是把逻辑上相邻的结点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现。
-
【☆】什么是随机存储结构?
- 如链表,逻辑上节点是顺序访问的,但是在存储时可能存储在不连续的内存区域中