今天要说的是:插入排序
插入排序 顾名思义,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入
如下文中,您有别的见解,欢迎评论指正,深海谢过诸位灵长类
简单插入排序
依据深海的理解举一个简单的例子:
未排序序列是:[5,9,8,4,2]
已排序序列是:暂时没有.
第一次执行插入: 将5拿出来 放到已排序序列
执行后:
未排序序列是:[9,8,4,2]
已排序序列是:[5]
第二次执行插入: 将9拿出来, 从已排序序列从后向前扫描,发现对应的位置在5的后面
执行后:
未排序序列是:[8,4,2]
已排序序列是:[5,9]
第二次执行插入: 将8拿出来, 从已排序序列从后向前扫描,发现对应的位置在5和9的中间
执行后:
未排序序列是:[4,2]
已排序序列是:[5,8,9]
以此类推,最终排序完成
希尔排序
希尔排序呢就是简单插入排序的升级版,
原理如下:
1.在逻辑的层面,将数组分成若干小数组,然后排序
2.之后将分组的条件更改,分组跨度变小,然后再排序
3.循环往复,直到跨度降到1时,排序整个数组.
该排序因为分组原因,相同大小的数可能顺序颠倒.所以该排序方式为不稳定排序