关键知识点第3章初等排序总结3.1
排序最关键的地方
1复杂度 (复杂度包括时间复杂度与空间复杂度)
2稳定性 关于稳定性的说明:一种排序的算法是否具有稳定性是和自己的代码有关的 在两个相同大小的数字比较的时候 如果你的语句包含了等于这个符号 着两个本来有序的同大小的数字 可能就会被调换位置,而代码中不包含等于这个符号 ,这两个相同大小的数字自然也就不会调换位置,也就是说,一种排序算法是否具有稳定性,不仅仅是看它排序的原理,还要看自己的代码中是否有等于号这个关键。
3输入数据的特征是否会对复杂度造成影响即排序算法的复杂度和输入数据的特征有关系
插入排序法
我们只将大于temp的值向后移动,已经拍好序的元素不会直接交换位置,所以这个排序是是分稳定的
时间复杂度 1+2+3+4+……+n-1=(n^2-n)/2 所以O(n^2)
空间复杂度 只需要额外申请temp的空间 很少
选择排序法
同样的稳定的
时间复杂度 1+2+3+4+……+n-1=(n^2-n)/2 所以O(n^2)
空间复杂度 用了swap 额外使用的空间依然很少