由于有上机作业,所以就对数据结构中常用的各种排序算法都写了个Demo,有如下几个:
- 直接插入排序
- 折半插入排序
- 希尔排序
- 冒泡排序
- 快速排序
- 选择排序
- 桶排序
Demo下载地址
下面谈一谈我对这几个排序算法的理解:
插入类算法
对于直接插入排序:(按从小到大的顺序)
核心原理:
若数组中只有一个元素,那么这就已经是有序的了;若数组中元素个数为两个,我们只需要对他们进行比较一次,要么交换顺序,要么不交换顺序就可以实现数组的内容的有序化;但是当数组内的元素的个数为N个呢?又该如何?这就催化了这个直接插入排序算法,其核心就是利用了有序化数组的方式,认为再插入一个新的元素之前都是有序的,只需要从后往前进行查找(找到一个小于待插入数据的位置,记为position,然后把这个数据之后的元素全部向后迁移一个,再把待插入数据插入到position+1的位置即可。(小伙伴们可以想象一下为什么是position+1,因为positio