取一个小于数组元素个数的整数作为第一个增量,把数组的全部元素分组,同一组中的所有元素下标距离均为增量的倍数,先在各组内进行直接插入排序.然后,取第二个增量小于第一个增量重复上述的分组和排序,直至所取的增量等于1,即所有元素放在同一组中进行直接插入排序为止.
1,取一个小于数组元素个数的整数d1作为第一个增量,把数组的全部元素分成d1个组,所有距离为d1的倍数的记录放在同一个组中.在各组内进行直接插入排序.
2,取第二个增量d2<d1重复上述的分组和排序.
3,取更小的增量重复上述的分组和排序,直至所取的增量dt=1(dt<dt-1<......<d2<d1),即所有记录放在同一组中进行直接插入排序为止.