赞
踩
转载:希尔排序动画
- void ShellSort(int arr[], int n)
- {
- int gap = n;//gap是间隔
- while (gap > 1)
- {
- gap = gap / 3 + 1;//3是初始间隔,可以自定义,会越来越小,最终是1
- //单趟的直接插入排序
- for (int i = 0; i < n - gap; i++)
- {
- int end = i;
- int temp = arr[end + gap];
- //直接插入排序是end减1,这个是end减gap,是步进值
- for (; end >= 0 && arr[end] > temp; end -= gap)
- {
- arr[end + gap] = arr[end];
- }
- arr[end + gap] = temp;
- }
-
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。