文章

排序算法总结

排序算法总结

1.冒泡排序

比较两数的大小然后交换位置,这样小的数就会靠前,大的数就会靠后。n个数迭代n次即可。

  • 关键 – 比较交换

2.选择排序

每次迭代找出剩余数中最大或最小的数放到相应的位置中。

  • 关键 – 找最值

3.插入排序

就像打扑克牌时对每次抽到的牌跟已经在手上的牌比较,找到并插入相应的位置。

  • 关键 – 找位插入

4.希尔排序

将数据分成若干组进行插入排序,分组数量按每次缩小3倍进行缩小,第一次的增量一般为n/3,直到增量为1。ps:每个分组的数据可“并行”迭代插入排序。

  • 关键 – 分组使用插入排序

5.归并排序

将数据分成两部分分别进行递归排序,之后将排好序的两部分数据合并成有序的数据。

  • 关键 – 二分递归排序再合并

6.快速排序

取一个数据为基准,将大于这个基准的数据放到基准值右边,小于这个基准值的数据放到左边,将两边的数据分别重复第一步进行以进行递归操作。

  • 关键 – 定值分组递归排序

7.堆排序

构建一个堆,不断将堆顶和堆尾互换后减少一个堆尺寸并调整堆,直到堆尺寸为1。

  • 关键 – 建堆取顶

8.计数排序

首先数值的范围是确定的, 通过从小到大地统计数据值的个数来确定序列结构,之后根据统计数据来对数据排序。

  • 关键 – 归纳统计再排序

9.桶排序

使用映射关系将数值映射存储到具有序列关系的桶中,然后再对桶中的数据进行排序。

  • 关键 – 分到有序桶中再排序

10.基数排序

先在个位维度上进行排序分组,再在十位维度上进行排序分组,以此类推,关键在于数值是几位数。

  • 关键 – 分维度排序
本文由作者按照 CC BY 4.0 进行授权