- 1、本文档共4页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
第 PAGE 4 页 共 NUMPAGES 4 页
仲恺农业工程学院实验报告纸
信息科学与技术 (院) 计算机科学与技术 专业 123 班 1 组 数据结构 课
学号 201310214306 姓名 刁忆考 实验日期 2013-12
实验10 内排序
一、实验内容
10.2设计一个程序exp10-2.cpp,实现希尔插入排序算法,并输出{9,8,7,6,5,4,3,2,1,0}的排序过程
(1)数据结构类型描述
#include stdio.h
#define MAXE 30
typedef int KeyType;
typedef char InfoType[10];
(2)基本运算的函数功能和函数原型以及核心函数的设计
void ShellSort(RecType R[], int n) //希尔排序算法
(3)测试数据和运行结果
int i, k, n = 10;
KeyType a[] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
RecType R[MAXE];
printf(\n);
for ( i = 0; i n; i++ )
R[i].key = a[i];
printf( 初始关键字序列为: );
for ( k = 0; k n; k++ )
printf(%3d, R[k].key);
printf(\n);
ShellSort( R, n );
printf( 希尔排序后结果为: );
for ( k = 0; k n; k++ )
printf(%3d, R[k].key);
printf(\n\n);
10.设计一个程序exp10-4.cpp实现快速排序算法,并输出{6,8,7,9,0,1,3,2,4,5}的排序过程
(1)数据结构类型描述
#include stdio.h
#define MAXE 30
typedef int KeyType;
typedef char InfoType[10];
(2)基本运算的函数功能和函数原型以及核心函数的设计
void QuickSort(RecType R[],int s, int t) //队R[s]至R[t]的元素进行快速排序
(3)测试数据和运行结果
int i, k;
n = 10;
KeyType a[] = { 6, 8, 7, 9, 0, 1, 3, 2, 4, 5 };
RecType R[MAXE];
for ( i = 0; i n; i++ )
R[i].key = a[i];
printf(\n 初始关键字: );
for ( k = 0; k n; k++ )
printf(%4d, R[k].key);
printf(\n);
QuickSort(R, 0, n-1);
printf( 快速排序后的最后结果为: );
for ( k = 0; k n; k++ )
printf(%4d, R[k].key);
printf(\n);
(4)分析和经验
10.6设计一个程序exp10-6.cpp实现堆排序算法,并输出{6,8,7,9,0,1,3,2,4,5}的排序过程
(1)数据结构类型描述
#include stdio.h
#define MAXE 30
typedef int KeyType;
typedef char InfoType[10];
(2)基本运算的函数功能和函数原型以及核心函数的设计
void DispHeap(RecType R[], int i, int n)
void Sift(RecType R[], int low, int high)
void HeapSort(RecType R[], int n)
(3)测试数据和运行结果
int i, k, n = 10;
KeyType a[] = { 6, 8, 7, 9, 0, 1, 3, 2, 4, 5 };
RecType R[MAXE];
for ( i = 1; i = n; i++ )
R[i].key = a[i-1];
printf(\n 初始关键字: );
for ( k = 1; k = n; k++ )
printf(%3d, R[k].key);
printf(\n);
for ( i = n / 2; i = 1; i-- )
Sift(R, i, n);
HeapSort(R, n);
printf( 堆排序后的最终结果: );
for ( k = 1; k =
文档评论(0)