一:插入排序
1:直接插入排序:
时间复杂度:最好的情况下:O(n) 序列正序
最坏的情况下: 移动的次数:1,2,3,4,…n-1 ;总的次数n(n-1)/2 则O(n^2)
平均时间复杂度:O(n^2);
空间复杂度O(1)
稳定排序
2:希尔排序:
时间复杂度:最好情况下 O(n),最坏情况下O(n^2)
平均时间复杂度O(n^1.3)
空间复杂度O(1)
不稳定排序
二:交换排序
1.冒泡排序:
时间复杂度:最好情况下:O(n)
最坏情况下:O(n^2)
平均时间复杂度:O(n^2)
空间复杂度 O(1)
稳定排序
2:快速排序
时间复杂度:最好的情况下:O(nlogn),最坏情况下O(n^2)
平均时间复杂度O(nlogn);
空间复杂度O(nlogn)
不稳定排序
三:选择排序
1:直接选择排序:
时间复杂度:
最好情况下O(n^2)
最坏情况下O(n^2)
平均时间复杂度:O(n^2);
空间复杂度O(1)
不稳定排序
2:堆排序:
时间复杂度:
最好情况下:O(nlogn)
最坏情况下:O(nlogn)
平均情况下:O(nlogn)
空间复杂度:O(n^2)
四:归并排序:
时间复杂度:
最好情况下:O(nlogn)
最坏情况下:O(nlogn)
平均时间复杂度:O(nlogn)
空间复杂度:O(1)
五:基数排序
稳定排序: