美文网首页
经典排序算法

经典排序算法

作者: MaTae | 来源:发表于2018-10-26 16:48 被阅读0次

    冒泡排序 Bubble Sort

    比较相邻的两个数,第一个数比第二个大则交换位置。

    一次循环能选出最大的到最后。

    排除最大的然后进行下一次循环,直到所有数被排序。

    桶排序 Bucket sort

    特点:快速、占空间

    1.顺序从待排数组中取出数字,首先6被取出,然后把6入6号桶,这个过程类似这样:空桶[ 待排数组[ 0 ] ] = 待排数组[ 0 ]

    [6 2 4 1 5 9]           待排数组

    [0 0 0 0 0 0 6 0 0 0]   空桶

    [0 1 2 3 4 5 6 7 8 9]   桶编号(实际不存在)

    2.顺序从待排数组中取出下一个数字,此时2被取出,将其放入2号桶,是几就放几号桶

    3.全部入桶后变成下边这样

    [6 2 4 1 5 9]           待排数组

    [0 1 2 0 4 5 6 0 0 9]   空桶

    [0 1 2 3 4 5 6 7 8 9]   桶编号(实际不存在)

    插入排序Insertion sort 

    插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。 

    插入排序

    归并排序中,算法先将数组分为两个子数组进行排序,再将两个子数组进行归并成一个有序的数组。

    快速排序中,算法对数组进行重新整理分割成两个子数组,对两个子数组进行排序,当两个子数组是有序时,整个数组即为有序的。

    归并排序merge sort

    https://blog.csdn.net/jjavaboy/article/details/80472844

    快速排序 Quick Sort

    1、先选定队列中,某一个元素为基数Value(一般选择头元素,或尾元素)。

    2、将基数Value依次与所有元素比较大小。按照比较结果将元素分为两个队列A、B。一个所有元素比基数Value大,一个所有元素比基数Value小。

    3、将A作为新的队列,再次选定基数,然后分成两个更小的队列

    4、就这样一直将每一个小的队列无限的拆分成更小的两个队列。

    5、一直到一个队列已经拆分成不能拆封为止(也就是一个元素)

    6、因为队列之间的顺序都是固定的。将这些队列一次组合起来,整体的排序就算完成了。

    相关文章

      网友评论

          本文标题:经典排序算法

          本文链接:https://www.haomeiwen.com/subject/qvuktqtx.html