排序算法总结
排序算法总结
1.冒泡排序
比较两数的大小然后交换位置,这样小的数就会靠前,大的数就会靠后。n个数迭代n次即可。
- 关键 – 比较交换
2.选择排序
每次迭代找出剩余数中最大或最小的数放到相应的位置中。
- 关键 – 找最值
3.插入排序
就像打扑克牌时对每次抽到的牌跟已经在手上的牌比较,找到并插入相应的位置。
- 关键 – 找位插入
4.希尔排序
将数据分成若干组进行插入排序,分组数量按每次缩小3倍进行缩小,第一次的增量一般为n/3,直到增量为1。ps:每个分组的数据可“并行”迭代插入排序。
- 关键 – 分组使用插入排序
5.归并排序
将数据分成两部分分别进行递归排序,之后将排好序的两部分数据合并成有序的数据。
- 关键 – 二分递归排序再合并
6.快速排序
取一个数据为基准,将大于这个基准的数据放到基准值右边,小于这个基准值的数据放到左边,将两边的数据分别重复第一步进行以进行递归操作。
- 关键 – 定值分组递归排序
7.堆排序
构建一个堆,不断将堆顶和堆尾互换后减少一个堆尺寸并调整堆,直到堆尺寸为1。
- 关键 – 建堆取顶
8.计数排序
首先数值的范围是确定的, 通过从小到大地统计数据值的个数来确定序列结构,之后根据统计数据来对数据排序。
- 关键 – 归纳统计再排序
9.桶排序
使用映射关系将数值映射存储到具有序列关系的桶中,然后再对桶中的数据进行排序。
- 关键 – 分到有序桶中再排序
10.基数排序
先在个位维度上进行排序分组,再在十位维度上进行排序分组,以此类推,关键在于数值是几位数。
- 关键 – 分维度排序
本文由作者按照 CC BY 4.0 进行授权