代码实现:https://gitee.com/sgrslim/DataStructure.git
冒泡排序:
相邻数据元素比较,进行交换。 O(n^2)
选择排序:
原理:
- 每一次遍历的过程,都假定第一个索引处的元素是最小值,和其他索引处的值依次进行比较,如果当前索引值大于其他某处索引处值,则假定其他某个索引处的值为最小值,最后找出最小值所在的索引
- 交换第一个索引处和最小值索引处位置
O(n^2)
插入排序
原理:
- 将所有元素分为两组,已排序 和 未排序。
- 找到未排序组中的第一个元素,向已排序组中进行插入。
- 倒叙遍历已排序元素,依次和待插入元素进行比较,直到找到一个元素小于等于待插入元素,那么就把待插入元素放到这个位置,其他元素向后移动一位。
希尔排序
原理
- 选定一个增长量h(一般为取数组长度的二分之一),按照增长量h作为数据分组的依据,对数据进行分组
- 对分好组的每一组数据完成插入排序
- 减小增长量,最小减为1,重复第二步操作