赞
踩
希尔排序又称缩小增量法。基本思想是先选定一个整数,把待排序的数据分成几个组,对每一组的记录进行排序。重复分组和排序的工作,直到所有数据在一组内排好序。
- void ShellSort(int* a, int n)
- {
- //gap > 1时预排序,使数组接近有序
- //gap为1时,直接插入排序
- int gap = n;
-
-
- while (gap > 1)
- {
- gap = gap / 3 + 1;
-
-
- for (int i = gap; i < n - gap; i++)
- {
- int end = i;
- int tmp = a[gap + end];
-
-
- while (end >= 0)
- {
- if (tmp < a[end])
- {
- a[end + gap] = a[end];
- end -= gap;
- }
- else
- {
- break;
- }
- }
- a[end + gap] = tmp;
- }
- }
- }

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