第15周 项目1-希尔排序
2015-12-07 16:38
288 查看
/* *文件名称:1.pp *作者:崔从敏 *完成日期:2015年12月7日 *问题描述:希尔排序 */ #include <stdio.h> #define MaxSize 20 typedef int KeyType; //定义关键字类型 typedef char InfoType[10]; typedef struct //记录类型 { KeyType key; //关键字项 InfoType data; //其他数据项,类型为InfoType } RecType; //排序的记录类型定义 void ShellSort(RecType R[],int n) //希尔排序算法 { int i,j,gap,k; RecType tmp; gap=n/2; //增量置初值 while (gap>0) { for (i=gap; i<n; i++) //对所有相隔gap位置的所有元素组进行排序 { tmp=R[i]; j=i-gap; while (j>=0 && tmp.key<R[j].key)//对相隔gap位置的元素组进行排序 { R[j+gap]=R[j]; j=j-gap; } R[j+gap]=tmp; j=j-gap; } printf("gap=%d:",gap); for (k=0; k<n; k++) printf("%d ",R[k].key); printf("\n"); gap=gap/2; //减小增量 } } int main() { int i,n=11; RecType R[MaxSize]; KeyType a[]= {57,40,38,11,13,34,48,75,6,19,9,7}; for (i=0; i<n; i++) R[i].key=a[i]; printf("排序前:"); for (i=0; i<n; i++) printf("%d ",R[i].key); printf("\n"); ShellSort(R,n); printf("排序后:"); for (i=0; i<n; i++) printf("%d ",R[i].key); printf("\n"); return 0; }
运行结果:
相关文章推荐
- oracle 优化方案
- 图像预处理与特征提取(2)——线性滤波
- Singleton 单例模式(懒汉方式和饿汉方式)
- 第十周项目二:二叉树遍历的递归算法
- MultiByteToWideChar和WideCharToMultiByte用法详解
- *第十五周*数据结构实践项目二【用哈希法组织关键字】
- 【第15周-查找项目1 - 验证哈希表实施查找的相关算法】
- 【第14周 项目1 - (2)验证分块查找算法】
- Xcode7.x安装Alcatraz(管理插件的插件)
- 第十五周项目2—用哈希法组织关键字
- Oracle重装后出错
- Mybatis generator eclipse插件从数据库获取注释
- 亲,根据二八定律,你的监控工具可能白装了哦
- 第十二周-输出从顶点u到顶点v的所有简单路径
- 第15周—项目2 用哈希法组织关键字
- 第15周上机实践项目1 - 验证算法(3)
- 项目2 - 用哈希法组织关键字
- android获取控件宽高
- 数据结构实践——拓扑排序算法验证
- Jenkins构建Android项目持续集成之简介篇