数据结构与算法
一、基本概念
1、算法复杂度介绍
数据结构:相互之间存在一种或者多种特定关系的数据元素的集合。在逻辑上可以分为线性结构、散列结构、树形结构、图形结构等等
算法:求解具体问题的步骤描述,代码上表现出来是解决特定问题的一组有限的指令序列
算法复杂度:时间和空间复杂度,衡量算法效率,算法在执行过程中,随着数据规模n的增长,算法执行所花费的时间和空间的增长速度。
常见的时间复杂度:
关系:O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(2n)<O(2!)<O(n^n)
常量时间<对数时间<线性时间
注:越往后时间复杂度花费越大
二、线性表
1、数组
特点:内存是连续的
-
优点
-
下标访问(随机访问)时间复杂度是O(1)
-
末尾位置增加删除元素时间复杂度是O(1)
-
访问元素前后相邻位置的元素非常方便
-
-
缺点
-
非末尾位置增加删除元素需要进行大量的数据移动
-
搜索的时间复杂度
-
无序数组-线性搜索O(n)
-
有序数组-二分搜索O(logn)
-
-
-
数组扩容消耗比较大
- 扩容
浙公网安备 33010602011771号