算法相关概念
- 次数
通过算法得到结果运行的次数。 - 运行时间
大O(n)表示法,n表示次数。
常见算法的运行时间:- O(n):如普通查找的线性时间
- O(n^2):如选择排序低效算法
- O(logn):如下二分查找log时间
- O(nlogn):如快速排序nlog时间
查找算法
- 二分查找
说明:比较查找,即每次都取列表中间的值和要查找的值相比较,直到找到要找的那个值。
前提条件:对于有序的数组才能使用。
查找次数是logn,运行时间是O(logn)。 - 普通查找
说明:可以是在无序中的数组中查找,查找长度为n的数组,最多查找n次数,运行时间是O(n)。
相关数据结构
- 数组
使用连续的内存空间。
随机读取效率高。 - 链表
使用非连续的内存空间。
读取全部或者读取第一个的元素和数组效率相当。
添加、插入、删除效率高。
循环和递归
性能相当,有时候循环性能更好。
如果不是为了代码逻辑更清晰,那就用循环。
- 递归
- 基线条件->为避免死循环,需要递归退出条件。
- 递归条件
- 栈:只有删除和读取的操作。