第十五周项目1(3)——验证希尔排序
来源:互联网 发布:淘宝手机搜索不精准 编辑:程序博客网 时间:2024/04/30 09:37
问题描述:验证希尔排序,完成测试。
*输入描述:无
*程序输出:测试数据
//1.希尔排序
#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;
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;
}
gap=gap/2; //减小增量
}
}
int main()
{
int i,n=11;
RecType R[MaxSize];
KeyType a[]= {16,25,12,30,47,11,23,36,9,18,31};
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;
}
//2.排序中输出每一次的中间结果
#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[]= {16,25,12,30,47,11,23,36,9,18,31};
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;
}
- 第十五周项目1—验证算法(希尔排序)
- 【第十五周项目1】验证算法——希尔排序
- 第十五周项目1--验证算法--(3)希尔排序
- 第十五周 项目1--验证算法--(3)希尔排序
- 第十五周项目1-验证算法(3-希尔排序)
- 第十五周项目1-验证算法(3)-希尔排序
- 第十五周项目1(3)--验证希尔排序算法
- 第十五周项目1-验证希尔排序(3)
- 【第十五周 项目1(3)-验证希尔排序】
- 第十五周项目1-(3)-验证希尔排序算法
- 第十五周项目1(3)--验证希尔排序算法
- 第十五周项目1-(3)-验证希尔排序算法
- 第十五周项目1-(3)-验证希尔排序算法
- 第十五周项目1(3)--验证希尔排序算法
- 第十五周项目1(3)——验证希尔排序
- 第十五周项目1(3)——验证希尔排序
- 第十五周实践项目1—验证算法(3)希尔排序
- 第十五周项目四 验证算法——希尔排序
- netbeans tmpl高亮显示
- 【第14周项目2-二叉树排序树中查找的路径】
- 二叉树神级遍历算法——Morris遍历(C++版)
- 第十五周 项目2 用哈希法组织关键字
- windows如何批量修改文件名
- 第十五周项目1(3)——验证希尔排序
- hibernate 一对多,多对一,一对一,多对多 映射
- 51nod 异或凑数
- 令人振奋的好消息!2016年12月8日Google Developers中文网站发布!
- 遍历Map
- 面向对象举例(一) —— 顶点(vertex)、边(edge)与图(graph)
- Linux zip 与 unzip 的用法
- 第十五周 项目一(3)冒泡排序
- Hough变换原理