希尔排序
来源:互联网 发布:火线淘宝 军火贩 电影 编辑:程序博客网 时间:2024/06/08 06:05
/*
该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再对全体元素进行一次直接插入排序。
Name:LQS
*/
#include <stdio.h>
#include <stdlib.h>
void shsort(int s[],int n) //自定义函数shsort
{
int i,j,d;
d=n/2; //确定固定增量值
while(d>=1)
{
for(i=d+1;i<=n;i++) //数组下标d+1开始进行直接插入排序
{
s[0]=s[i]; //设置监视哨
j=i-d; //确定要进行比较的元素的最右边位置
while((j>0)&&(s[0]<s[j]))
{
s[j+d]=s[j];//数据右移
j=j-d; //向左移d个位置
}
s[j+d]=s[0]; //在确定的位置插入s[i]
}
d=d/2; //增量变为原来的一半
}
}
int main()
{
int a[11],i;
printf("请输入10个数据:\n");
for(i=1;i<=10;i++)
{
scanf("%d",&a[i]);
}
shsort(a,10);
printf("排序后的顺序是:\n");
for(i=1;i<=10;i++)
{
printf("%5d",a[i]);
}
printf("\n");
}
1 0
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 希尔排序
- 2
- 树与二叉树基本概念
- js中typeof和instanceof的区别
- Android开发艺术探索第六章——Android的Drawable
- CSDN写个博客好难啊~
- 希尔排序
- 基于Java的打包jar、war、ear包的作用与区别详解
- H264码流打包分析.整理
- 数据结构实验之二叉树的建立与遍历
- 杭电OJ 2010.水仙花数
- Android单元测试
- 稳定匹配算法 C 语言实现
- qsort的排序
- Eclipse编写jsp自动导入包