排序算法
直接/折半插入排序 时间复杂度O(n^2)
希尔排序 时间复杂度O(n^3/2)
冒泡排序 时间复杂度O(n^2)
1 for(int j=1;j<n;++j) //比较n-1次 2 for(int i=0;i<n-j;++i) //第j趟比较n-j次
快速排序 时间复杂度O(nlogn) 最坏情况下时间复杂度是O(n^2)
选择排序 时间复杂度O(n^2) (树形选择排序、堆选择排序时间复杂度O(nlogn))
归并排序 时间复杂度O(nlogn)
注: 稳定的排序:插入排序、冒泡排序、归并排序、二叉树排序。
不稳定的排序:希尔排序、快速排序、选择排序、堆排序。
快速排序最坏情况下时间复杂度是O(n^2),其余最好最坏评价都一样。
大规模数据用排序中算法复杂度最低的归并排序为好(O(nlog(n)))。