关于算法的一些理论性概念不多赘述。主要目的是记下自己听课后对算法的浅显理解。
首先算法是离不开时间复杂度的。
1.冒泡排序
总结:临近相比,较大后移,一轮过后出现最大,下一轮循环减去最大,循环往复。
0到N-1-->0到N-2-->0到N-3
时间复杂度O(N^2),额外空间复杂度O(1)
2.选择排序
总结:所有比较,最小占第一位,第二轮开始,所有数比较,最小占第二位,循环往复。
0到N-1-->1到N-1-->2到N-1
时间复杂度O(N^2),额外空间复杂度O(1)
3.插入排序(类似扑克牌整牌)
总结:先排好0到0的顺序,再排0到1的,总与前一位比较,循环,把最小的放到最前面。循环前一阶段已经是有序的了
0到0-->0到1-->0到3
此时复杂度和实际情况有关,分为最有情况,平均情况,最差情况。一般按照最差情况来使用。
时间复杂度O(N^2),额外空间复杂度O(1)
对数器的使用
递归的实质及时间复杂度的计算