1 / 13
文档名称:

实验:排序算法.doc

格式:doc   大小:37KB   页数:13页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验:排序算法.doc

上传人:文库旗舰店 2020/1/10 文件大小:37 KB

下载得到文件列表

实验:排序算法.doc

文档介绍

文档介绍:实验报告课程名称软件技术基础实验项目排序算法学时数2专业电子班级一学号140206126姓名吕瑛琦指导教师冯花平实验成绩 实验时间 实验地点          实验目的: ?掌握直接插入排序\冒泡排序\选择排序算法的核心思想。?熟练编写直接插入排序\冒泡排序\选择排序的算法代码。实验任务一:{3,2,5,4,10,6,8,}中,通过直接插入排序算法给出顺序表中元素按升序排序的排序过程。实验格式如下图8-1所示图1直接插入排序实现过程参考图自测题:,并写出直接插入排序算法的代码每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。设数组为a[0…n-1]。1.     初始时,a[0]自成1个有序区,无序区为a[1..n-1]。令i=12.     将a[i]并入当前的有序区a[0…i-1]中形成a[0…i]的有序区。3.     i++并重复第二步直到i==n-1。排序完成#include<> int main(void){ inta[7];inti,j,k,temp; printf("请输入要排序的元素:\n"); for(i=0;i<7;i++) scanf("%d",&a[i]); for(i=1;i<7;i++){ temp=a[i]; for(j=0;j<i;j++){ if(temp<a[j]){ for(k=i-1;k>=j;k--){ a[k+1]=a[k]; } a[j]=temp; break; } } } for(i=0;i<7;i++){ printf("%d",a[i]); } printf("\n"); } 2现有一个8个元素,写出直接插入排序的过程(非降序排列){7,4,12,10,20,15,24,17}实验任务二:{3,2,5,4,10,6,8,}中,通过冒泡排序算法给出顺序表中元素按升序排序的排序过程。实验格式如下图8-2所示图2冒泡排序实现过程参考图自测题:,并写出冒泡排序算法的代码依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程#defineMAX100#defineOK#defineERROR0#defineOVER-1#include""#include""typedefintdatatype;typedefstruct{datatypedata[MAX];intlength;}SeqList;///voidInitList(SeqList*L){L->length=0;printf("初始化成功\n");}////建立线性表voidCreatList(SeqList*L,intn){inti;printf("输入要排列的元素:\n");for(i=0;i<n;i++)scanf("%d",&L->data[i]);L->length=i;}}//输出voidDispList(SeqList*L){inti;printf("要输出的元素为:\n");for(i=0;i<L->length;i++)printf("%5d",L->data[i]);printf("\n");}//排序voidBubbleSort(intr[],intn){  exchange=n;  while(exchange){bound=exchange;exchange=0; for(j=1;j<bound;j++)if(r[j]>r[j+1]){r[j]←→r[j+1];exchange=j;}}}//插入intInsertList(SeqList*L,inti,datatypex){returnOK;}  //删除intDeleteList(SeqList*L,inti,datatypex){returnOK;}  intmain(){SeqListL;inti,n,choice;datatypex;do{printf("**********  主菜单    **********\n");printf("**********   **********\n");printf("**********   **********\n");printf("**********   **********\n");printf("********************\n");//printf("*