- 1、本文档共3页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE 2
数据结构实验 排序
姓名:陆孟飞
学号
需求分析:
本演示程序用C++6.0编写,完成排序的实现,对输入的一组数字实现不同的排序方法,对其由小到大顺序输出。
(1)分别对直接插入排序、希尔排序、冒泡排序、快速排序、选择排序、堆排序算法进行编写。
(2)、对存储的函数即输入的数字进行遍历。
(3)、初始化函数对输入的数字进行保存。
(4)、主函数实现使用者操作界面的编写,对输入、选择、保存、输出的各种实现。这当中还包括了各个函数的调用的实现。
(5)、程序所能达到的功能:完成对输入的数字的生成,并通过对各排序的选择实现数字从小到大的输出。
(8)、初始化函数InitSqList()。
(9)、主函数main()。
详细设计
实现各个算法的主要内容,下面是各个函数的主要信息:
(1)各个排序函数的算法:
希尔排序
void ShellSort(SqList L)
{
int i, j;
int dk = 1;//增量
while(dk =L.length/3)
dk = 3*dk+1;//增大增量
while(dk0)
{
dk /= 3;//减小增量
for (i = dk; i =L.length; i++)
{
L.r[0].key = L.r[i].key;
j = i;
while ((j = dk) (L.r[j-dk].key L.r[0].key))
{
L.r[j].key = L.r[j-dk].key;
j -= dk;
}
L.r[j].key = L.r[0].key;
}
}
}
测试结果
文档评论(0)