P2484【舞动的排序6】希尔排序 | |
|
问题描述
视频已失效
算法思路:
取一个小于数组元素个数的整数作为第一个增量,把数组的全部元素分组,同一组中的所有元素下标距离均为增量的倍数,先在各组内进行直接插入排序。然后,取第二个增量小于第一个增量重复上述的分组和排序,直至所取的增量等于1,即所有元素放在同一组中进行直接插入排序为止。
算法描述:
1、取一个小于数组元素个数的整数d1作为第一个增量,把数组的全部元素分成d1个组,所有距离为d1的倍数的记录放在同一个组中。在各组内进行直接插入排序。
2、取第二个增量d2<d1重复上述的分组和排序。
3、取更小的增量重复上述的分组和排序,直至所取的增量dt=1(dt<dt-1<……<d2<d1),即所有记录放在同一组中进行直接插入排序为止。
输入格式
InputFormat
输出格式
OutputFormat