排序算法

2019-04-19  本文已影响0人  蜡笔没了小新_e8c0

比较排序

1.冒泡排序

每次比较相邻的元素,如果顺序错误则交换。

2.选择排序

每次查找出未排序队列中的最值放到已排序的末尾。

3.插入排序

遍历一次数组,将每个元素插入到之前所有已排序的数组中。

4.希尔排序

将原数组按照希尔增量分成若干个组,每次先在组内使用直接插入排序,在减小增量,继续分组排序,最后只需简单微调,无需大量移动操作。

5.归并排序

分治法。将数组先分成两份,每份中又被分成两份,以此类推,再将排好序的数组合并,得到完全有序的数组。

6.快速排序

选择一个基准值,将所有的数小于的放到一遍,大于的放到一遍,再在两边继续选择一个基准值分类,最后达到有序。

7.堆排序

按照二叉树的思想,根总是最大或最小的元素。

非比较排序

1.计数排序

额外开辟数组空间用来保存各元素的个数,在遍历新开辟的数组,把元素还原回去。

2.桶排序

计数排序的升级版。利用函数映射的关系将所有数据分别放入各自的桶中,再对非空的桶进行排序。

3.基数排序

依次比较各个位的大小。

上一篇 下一篇

猜你喜欢

热点阅读