首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

这段希尔排序程序错在哪呢解决方案

2012-04-22 
这段希尔排序程序错在哪呢#includestdio.hvoid main(){int a[]{1,5,2,0,69},ivoid ShellSort(int a[],

这段希尔排序程序错在哪呢
#include<stdio.h>
void main()
{
int a[]={1,5,2,0,69},i;
void ShellSort(int a[],int n);
int n=sizeof(a)/sizeof(a[0]);

ShellSort(a,n);
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
}

void ShellSort(int a[],int n)
{
int gap=n/2,temp,i;
while(gap>0)
{
for(i=0;i<n;i++)
{
while(i<n-gap)
{
if(a[i]>a[i+gap])
{
temp=a[i];
a[i]=a[i+gap];
a[i+gap]=temp;

}
i=i+gap;
}
}
gap=gap/2;
}
}




[解决办法]

C/C++ code
#include<stdio.h>void main(){    int a[]={1,5,2,0,69},i;    void ShellSort(int a[],int n);    int n=sizeof(a)/sizeof(a[0]);        ShellSort(a,n);    for(i=0;i<n;i++)    {        printf("%d ",a[i]);    }}void ShellSort(int a[],int n){    int gap= n/2,t,i,j;    while(gap>0)    {        for(i=gap;i<n;i++)        {            t = a[i];            j = i - gap;            while(j >= 0 && t < a[j])            {                a[j + gap] = a[j];                j = j - gap;            }            a[j + gap] = t;        }        gap/=2;            }} 

热点排行