比较排序
1.冒泡排序
每次比较相邻的元素,如果顺序错误则交换。
2.选择排序
每次查找出未排序队列中的最值放到已排序的末尾。
3.插入排序
遍历一次数组,将每个元素插入到之前所有已排序的数组中。
4.希尔排序
将原数组按照希尔增量分成若干个组,每次先在组内使用直接插入排序,在减小增量,继续分组排序,最后只需简单微调,无需大量移动操作。
5.归并排序
分治法。将数组先分成两份,每份中又被分成两份,以此类推,再将排好序的数组合并,得到完全有序的数组。
6.快速排序
选择一个基准值,将所有的数小于的放到一遍,大于的放到一遍,再在两边继续选择一个基准值分类,最后达到有序。
7.堆排序
按照二叉树的思想,根总是最大或最小的元素。
非比较排序
1.计数排序
额外开辟数组空间用来保存各元素的个数,在遍历新开辟的数组,把元素还原回去。
2.桶排序
计数排序的升级版。利用函数映射的关系将所有数据分别放入各自的桶中,再对非空的桶进行排序。
3.基数排序
依次比较各个位的大小。
网友评论