C语言——希尔排序
2016-02-04 17:21
489 查看
看了网上很多个希尔排序方法,但是我都不是很明白,自己写了一个,
#include<stdio.h>
void insertSort(int a[],int n)
{
int gap=0;
for(gap=n/2;gap>0;gap=gap/2)
{
if (gap!=1)
{
for(int i=0;i<n;i=gap+i)
{ int t;
if (a[i]>a[gap+i])
{t=a[i];
a[i]=a[gap+i];
a[gap+i]=t;}
}
}
else
for(int i=1;i<n;i++)
{
int temp;
int j=0;
temp=a[i];
for(j=i-1;j>=0 && temp<a[j];j--)
a[j+1]=a[j];
a[j+1]=temp;
}
}
}
void main()
{
int i,a[10];
printf("请输入要比较的数:\n");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
printf("排序前的顺序是:\n");
for(i=0;i<10;i++)
printf("%d\n",a[i]);
insertSort(a,10);
printf("排序后的顺序是:\n");
for(i=0;i<10;i++)
printf("%d\n",a[i]);
}
相关文章推荐
- 几种基本的排序算法(选择排序,冒泡排序,快速排序,归并排序,希尔排序)C语言实现
- 数据结构 C语言实现希尔排序
- (C语言)八大排序之:希尔排序
- 希尔排序(c语言)
- C语言实现插入排序与希尔排序与一些想法
- 希尔排序及C语言实现
- 算法导论之插入排序,选择排序,归并排序,冒泡排序,希尔排序,堆排序,快速排序的c语言实现
- 希尔排序的C语言实现(1)
- 排序系列之(4)希尔排序及C语言实现
- 排序算法的C语言实现-希尔排序
- C语言-数据结构-希尔排序(shell sort)-源代码
- 希尔排序(C语言实现)
- C语言实现希尔排序
- 希尔排序及C语言实现
- 排序算法之希尔排序(C语言实现)
- 希尔排序-c语言实现
- C语言实现直接插入排序和希尔排序
- C语言希尔排序的实现
- C语言中的排序算法--冒泡排序,选择排序,希尔排序
- 插入排序和希尔排序(C语言)