各种排序算法概括

冒泡:不断使最大的数向后移动直到最后一位数字最大


快排:以第一个数为标准,先移动右端数字,两端同时向中间进行并与选出数字进行比较,小于选出数字挪到左边,大于挪到右边,两个移动数字相遇时,将基准数字与其相调换,则基准数字左边数字全部小于他,右边全部大于他,再对左右两部分进行同样操作。


桶排序:提前设定好一系列桶,将每个数字放进范围桶内,再对肋部数字进行排序


插入排序:每次从后面无序数列中选出一个数字插入到前面有序数列中,如同取扑克牌


选择排序:通过移动不断比较得到最小(大)数字,调换位置使之移到最前方,然后比较之后的无序数列中的最小(大)数字,进行用样操作

归并排序:相邻元素按规模分为一组,每组规模不断变大,如两个一组,四个一组,最后分为两个组归并到一起

希尔排序:插入排序的进化,按分组规模从大到小最后一个数字为一组进行插入排序

基数排序:从低位向高位不断从小到大排序 

时间复杂度:


不考虑基数排序的请况下,

除快速排序,归并排序,堆排序平均时间复杂度为O(nlog2n)之外,其他为O(n^2);

最坏情况只有归并排序,堆排序时间复杂度为O(nlog2n),其他为O(n^2);

最好情况只有选择排序时间复杂度仍为O(n^2)。

猜你喜欢

转载自blog.csdn.net/n1neding/article/details/79875146