您的位置:首页 > 编程语言

直接插入排序和希尔排序(完整代码)

2020-09-04 18:44 726 查看

#include<stdio.h>
#include<stdlib.h>

void InsertSort(int a[],int n) //直接插入排序
{
int i,j;
int temp;
for(i=1;i<n;i++)
{
temp=a[i];
j=i-1;
for(j;j>=0&&a[j]>temp;j–)
{
a[j+1]=a[j];
}
a[j+1]=temp;
}

}

void ShellSort(int a[ ],int n) //希尔排序
{
int i,j,gap;
int temp;
for(gap=n/2;gap>0;gap/=2)
{
for(i=gap;i<n;++i)
{
temp=a[i];
for(j=i;j>=gap&&a[j-gap]>temp;j-=gap)
a[j]=a[j-gap];
a[j]=temp;
}
}

}

void print(int array[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%d ",array[i]);
}
}
int main()
{
int array[]={4,3,6,9,7,1,2,4,5,0};
int n=10;
// InsertSort(array,n);
ShellSort(array,n);
print(array,n);
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐