希尔排序是一种经典的排序方法
发布时间
阅读量:
阅读量
1、希尔排序原理与实现
希尔排序(shell sort)是一种在直接插入排序基础上进行优化与改进的排序算法。
2、希尔排序演示

在动画效果展示过程中,仅对元素进行了单次分组操作,而在第二次排序时却直接对整个序列实施了完整的排序过程
3、希尔排序原理
首先,需要将待排序的数据元素进行分组处理,从初始序列中每隔d个位置选取一个元素,形成类似L [ i , i + d , i + 2 d , i + 3 d , . . . , i + k d ] 的结构。初始阶段可以将n个元素划分为d个子组,每组数据均需执行直接插入排序操作(具体实现可参考下方代码)。当整个序列中的元素大致呈现有序状态时,再对所有记录实施一次直接插入排序。
在希尔排序过程中,每一轮排序并不会立即产生有序区域,在最终一轮排序完成之前,所有元素未必已经归位。然而,在每次希尔排序结束后,数据的有序程度会逐步提升,逐渐趋向于完全有序的状态。
for(int d = len/2; d>=0; d /= 2){
以d为增量,在子序列内
全部评论 (0)
还没有任何评论哟~
