- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数据结构与算法》实验报告
班级学号 姓 名 实验周次 实验日期 xxxxx xxxxxx xxxxxx 2015年10月 28 日 实验02:排序
一、实验目的
1.掌握各种常用排序方法的特点及其存储的方式。
2.掌握各种排序算法的要求、方法和过程。
3.SortDemo.exe中的所有排序均是升序排列,但完成本实验时,学号为单号的同学:排序时要求升序排列;学号为双号的:排序时要求降序排列。
3、实验报告电子稿和打印稿及其它提交方面的要求同实验01。
四、运行结果
图2-1 随机产生一批整数并快速排序
图2-2 随机排列表中元素并希尔排序
图2-3 随机排列表中元素并希尔排序
图2-4 随机排列表中元素并归并排序
五、参考程序
#include stdio.h
#include stdlib.h
#include time.h
#define MAX 50
// 顺序表结构体
typedef struct
{
int s[MAX]; // 存放一批随机整数,数组大小MAX不能扩充
int length; // 当前表中元素的个数
} SeqList;
// 功能菜单
void menu()
{
printf(\n\t*************排------序*************\n);
printf(\t* 1 随机产生一批整数 *\n);
printf(\t* 2 手动输入一批整数 *\n);
printf(\t* 3 将表中数据随机化 *\n);
printf(\t* 4 快速排序 *\n);
printf(\t* 5 希尔排序 *\n);
printf(\t* 6 堆排序 *\n);
printf(\t* 7 归并排序 *\n);
printf(\t* 8 依次显示表中所有数据 *\n);
printf(\t* 0 退出程序 *\n);
printf(\t************************************\n);
}
/* 初始化一个空的顺序表 */
SeqList *init()
{
// 开辟顺序表空间
SeqList *p=(SeqList *)malloc(sizeof(SeqList));
// 设置顺序表的初始长度为0
p-length=0;
// 返回整个顺序表的(起始)地址
return p;
}
/* 随机产生一批整数到线性表中 */
void randGen(SeqList *p)
{
int num, i;
printf(请输入元素个数(=%d):\n, MAX-1);
scanf(%d, num);
srand((int)time(0));
if(num = MAX)
{
// 随机产生num个整数存入顺序表中(从1号单元开始存放,0号单元留作“哨兵”)
for(i=1; i=num; i++)
p-s[i]=1+(int)(100.0*rand()/(RAND_MAX+1.0));
p-length=num;
printf(顺序表中已成功放入%d个整数!\n, num);
}
else
printf(顺序表空间不够,请重新输入元素个数!\n);
}
/* 手动输入一批整数到线性表中 */
void manInput(SeqList *p)
{
int num, i;
printf(请输入元素个数(=%d):\n, MAX-1);
scanf(%d, num);
printf(请输入%d个整数:\n, num);
if(num = MAX-1)
{
// 输入num个整数存入顺序表中(从1号单元开始存放,0号单元留作“哨兵”)
for(i=1; i=num; i++)
scanf(%d, (p-s[i]));
p-length=num;
printf(顺序表中已成功输入%d个整数!\n, num);
}
else
printf(顺序表空间不够,请重新输入元素个数!\n);
}
/* 将顺序表中现有元素打乱为随机排列 */
void randomizeList(SeqList *p)
{
int i, selectLoc, tmp;
您可能关注的文档
- 数据库原理 实验六 数据库的备份与恢复new.doc
- 数据库基础试题8.doc
- 数据库及常用语句介绍.ppt
- creo3.0 M030正式版安装及破解方法.doc
- 数据库实验二:创建数据库表.pptx
- 数据库实验报告(实验二).doc
- creature.pptx
- 数据库应用技术_在线作业_3.docx
- 数对表示位置.ppt
- 数据可视化技术分析ppt.ppt
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)