- 8
- 0
- 约2.32千字
- 约 8页
- 2019-03-04 发布于江苏
- 举报
直接插入排序、冒泡排序、快速排序—于—实验七
宁德师范学院计算机系
实验报告
(2014 —201 5学年 第 一 学期)
课程名称
数据结构
实验名称
实验七
数据的排序与检索
专 业
计算机科学与技术
年 级
2013级
学 号
B2013102141
姓名
于
指导教师
毛雁明
实验日期
2014-12-2
实验目的与要求:
1、掌握数据结构中的几种常用排序方法:插入排序、快速排序、选择排序等。
2、遇到实际问题能够选择适当的排序方法解决。
实验设备(环境):
微机、C语言编程环境(VC++)
实验内容:
给定的数组list[N]={213, 111, 222, 77, 400, 300, 987, 1024, 632, 555},试分别用直接插入排序、冒泡排序、快速排序对上述数据进行排序。
要求:每种排序算法编写为独立的自定义函数且要求输出每趟排序后的数据排列序列情况。
实验步骤、实验结果及分析:
函数代码
#includestdio.h
# define n 10
typedef struct
{
int key;
}RecType;
typedef RecType SeqList[n+1];
void insertSort(SeqList r)
{
int i,j;
for(i=2;i=n;i++)
{
r[0]=r[i];
j=i-1;
while(r[0].keyr[j].key)
{
r[j+1]=r[j];
j--;
}
r[j+1]=r[0];
}
}
void bubblesort(SeqList r)
{
int i,j,exchange;
for(i=1;in;i++)
{
exchange=0;
for(j=n-1;j=i;j--)
if(r[j+1].keyr[j].key)
{
r[0]=r[j+1];
r[j+1]=r[j];
r[j]=r[0];
exchange=1;
}
if(!exchange)
break;
}
}
int partition(SeqList r,int i,int j)
{
RecType pivot=r[i];
while(ij)
{
while(ijr[j].key=pivot.key)
j--;
if(ij)
r[i++]=r[j];
while(ijr[i].key=pivot.key)
i++;
if(ij)
r[j--]=r[i];
}
r[i]=pivot;
return i;
}
void quicksort(SeqList r,int low,int high)
{
int pivotpos;
if(lowhigh)
{
pivotpos=partition(r,low,high);
quicksort(r,low,pivotpos-1);
quicksort(r,pivotpos+1,high);
}
}
main(void)
{ int low=1,high=10;
SeqList r={0,213, 111, 222, 77, 400, 300, 987, 1024, 632, 555};
int i;
insertSort(r);
printf(直接插入排序算法:\n);
for(i=1;i=n;i++)
printf(%-6d,r[i]);
printf(\n);
bubblesort(r);
printf(冒泡排序算法:\n);
for(i=1;i=n;i++)
printf(%-6d,r[i]);
printf(\n);
quicksort(r,low,high);
printf(快速排序算法:\n);
for(i=1;i=n;i++)
printf(%-6d,r[i]);
printf(\n);
}
主函数流程图
运行结果
实验总结
本实验主要考查直接插入排序、冒泡排序、快速排序三项函数调用,难度还是有的,需要我们首先理解这三种排序方式,排序实质,然后我们就需要写程序代码,主函数还是很好写的,快速排序算法代码是个难点,还要嵌套一个调用函数需要我们在草稿纸上事先演算下,进行多次调试,达到要求。直接插入排序的方法是首先在当前有序区r[i..i-1]中查找人r[i]的正常插入位置k;然后将r[k..i-1]中的记录均后移一个位置,腾出k位置上的空间插入r[i]。其他方法与这有点不同,画主函数流程图要求我们对代码整体有个框架认识,首先动态分配空间,建立顺序表,然后输入整数进行判断,不符合时继续
您可能关注的文档
- 电阻电路的等效换江苏大学.ppt
- 电风扇的原理及修(用).ppt
- 男孩8岁前不能错过的十部电影.doc
- 男人比女人更需要关怀.pptx
- 男人魂:好儿子、好丈夫、好父亲、家庭和谐初探.doc
- 界面管理在建设项目管理中的应用.doc
- 男孩取名字大全:1200个好听的男孩名字-任东升.pptx
- 留取丹心照汗青ppt课件.ppt
- 画山绣水第二课时.ppt
- (广东专用)高中英语 Unit 14 Careers Period Three Grammar课件 北师大版必修5.ppt
- 2025年全国演出经纪人员资格认定考试试卷带答案(研优卷).docx
- 2025年全国演出经纪人员资格认定考试试卷完整版.docx
- 2025年全国演出经纪人员资格认定考试试题库及完整答案.docx
- 2025年全国演出经纪人员资格认定考试试卷完美版.docx
- 2025年全国演出经纪人员资格认定考试试卷含答案(实用).docx
- 2025年全国演出经纪人员资格认定考试试卷及答案(各地真题).docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
- 2025年全国演出经纪人员资格认定考试试卷及答案1套.docx
- 2025年下半年四川成都市郫都区面向社会引进公共类事业单位人员2人备考题库最新.docx
- 2025年下半年内江市部分事业单位公开考试招聘工作人员(240人)备考题库附答案.docx
最近下载
- GB45673-2025《危险化学品企业安全生产标准化通用规范》解读.pptx
- SH15-M-40010非晶合金变压器设计.docx VIP
- 青岛市2025-2026学年(上期)高三期末考试政治试卷(含答案).docx
- 2025届高考物理二轮复习热点题型归类-专题06 牛顿运动定律的综合应用(教师版).docx VIP
- ASTME8/E8M2021金属拉伸实验最新美标中文版.pdf VIP
- 中国美术水墨画课件.pptx VIP
- Why Nations Fail书.pdf VIP
- 【高考真题】全国2024年统一高考物理真题试卷(新课标)附解析.docx VIP
- 2025届高考物理热点题型归类专题11功和功率及动能定理的理解与应用讲义+变式演练.pdf
- 幼儿园小班手指游戏集(13个) 幼儿园小班游戏教案.doc VIP
原创力文档

文档评论(0)