[求助]查下面的一个程序的错?
#include<stdio.h>
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;
}
}
#include<stdio.h>
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;
}
}
2007-04-12 22:47
2007-04-12 22:49
2007-04-12 23:06
2007-04-13 00:19
2007-04-13 00:35
2007-04-13 09:09
2007-04-13 15:20
2007-04-13 15:36
#include<stdio.h>
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;
}
}
似乎是用来做排序的,但是我觉得你的排序做了很多重复的事情,当gap=1的时候你的排序其实就是冒泡了.
也就是说在gap不是1之前做了很多重复事情

2007-04-13 16:18