读书人

shell排序算法,该怎么处理

发布时间: 2012-04-02 19:58:59 作者: rapoo

shell排序算法
shell排序算法
void shellsort(int v[], int n)
{
int gap, i, j, temp;

for(gap = n/2; gap > 0; gap /= 2)
for(i = gap; i < n; i++)
for(j=i-gap; j>=0; && v[j]>v[j+gap]; j-=gap)
{
temp = v[j];
v[j] = v[j+gap];
v[j+gap] = temp;
}
}

for(j=i-gap; j>=0; && v[j]>v[j+gap]; j-=gap) 这里我始终没能理解, j-=gap 的话, 那j就为负数了 ?
还帮我讲下shell算法的整体结构思想。

[解决办法]
shell排序的整体结构思想如下
希尔排序法
[解决办法]

C/C++ code
for(j=i-gap; j>=0; && v[j]>v[j+gap]; j-=gap)//你这儿肯定有问题,都三个分号了,另外j-=gap是负数怕什么,就不执行下面的了,重新循环而已
[解决办法]
探讨
shell排序算法
void shellsort(int v[], int n)
{
int gap, i, j, temp;

for(gap = n/2; gap > 0; gap /= 2)
for(i = gap; i < n; i++)
for(j=i-gap; j>=0; && v[j]>v[j+gap]; j-=gap)
{
temp = v[j];……

读书人网 >C语言

热点推荐