排序算法(1)
排序算法(1)
本此介绍十大经典排序算法的前五个:
- 冒泡排序
- 选择排序
- 插入排序
- 希尔排序
- 归并排序
冒泡排序

算法步骤
- 比较相邻元素的大小如果第一个小于第二个就交换他们的位置
- 循环比较每一对,最后一个元素会是最小的元素
- 重复上面的操作,除了最后一个,因为最后一个已经确定
- 继续重复比较直到全部比较完成,或某次比较没有任何元素交换
代码实现
1 | |
选择排序

算法步骤
- 从未排序的数组中找到最大的元素放到起始位置
- 从剩下的元素中找到最大的元素放到起始位置之后
- 重复上面的操作,直到所有元素排序完成
代码实现
1 | |
插入排序

算法步骤
- 将第一个元素当做有序数组
- 将第二个元素插入到合适的位置,此时前两个元素是有序的
- 再将第三个元素插入到前两个元素中合适的位置,此时前三个元素是有序的
- 重复上面操作,直到排序完成
- 在插入过程中,如果有插入操作就进行下一个元素的插入
代码实现
1 | |
希尔排序

算法步骤
- 选择一个增量,根据增量可以得到每次排序的间隔(例如:10个元素,增量为2,则间隔为5(10/2),2(5/2),1(2/2) )
- 按间隔进行比较,如果满足条件就交换位置。
- 重复上面的操作,直到间隔小于1结束
代码实现
1 | |
归并排序

算法步骤
- 将数组从中间分为两部分
- 将这个两部分继续从其中间分开
- 重复上面的操作,直到两边只有一个元素
- 从最下层开始,两部分对应元素进行比较并排序,合并到一起,如果一部分没有元素,将仍有元素的直接加到末尾
代码实现
1 | |
算法原理的学习以及算法图片来自程序员吴师兄
排序算法(1)
https://carl-5535.github.io/2020/12/06/数据结构/排序算法(1)/