[求助]查下面的一个程序的错?
#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;
}
}
似乎是用来做排序的,但是我觉得你的排序做了很多重复的事情,当gap=1的时候你的排序其实就是冒泡了.
也就是说在gap不是1之前做了很多重复事情