用任意方法对给定的数组排序 数据结构

上传人:wt****50 文档编号:40174678 上传时间:2018-05-24 格式:DOC 页数:4 大小:79.50KB
返回 下载 相关 举报
用任意方法对给定的数组排序  数据结构_第1页
第1页 / 共4页
用任意方法对给定的数组排序  数据结构_第2页
第2页 / 共4页
用任意方法对给定的数组排序  数据结构_第3页
第3页 / 共4页
用任意方法对给定的数组排序  数据结构_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《用任意方法对给定的数组排序 数据结构》由会员分享,可在线阅读,更多相关《用任意方法对给定的数组排序 数据结构(4页珍藏版)》请在金锄头文库上搜索。

1、键入文字键入文字数据结构实验报告数据结构实验报告学院学院:数学科学学院数学科学学院 专业专业: 信息与计算科学信息与计算科学实验名称实验名称用任意方法对给定的数组排序用任意方法对给定的数组排序成绩成绩姓名姓名年级年级20112011学号学号201110701160201110701160一、一、实验目的:实验目的: 1熟悉并掌握各种排序方法的设计思路。 2掌握在计算机上实现的各种具体排序操作。二、二、实验内容实验内容 1实现插入排序操作(插入排序基本思想:每次将一个待排序的记录,按其关键字大小插入到前面已经排 好序的序列中的适当位置,直到全部记录插入完成为止) 。 2实现交换排序操作(交换排序

2、基本思想:在待排序的序列中,找到不满足有序性的两个关键字,交换位 置,以满足有序性,重复整个过程直到该序列中的所有关键字都有序为止) 。 3实现选择排序操作(选择排序基本思想:每一趟从待排序的记录中选出关键字最小的记录,并顺序放在 已排好序的序列的最后,直到全部记录排序好为止。三、三、实验步骤:实验步骤: 采用的数据描述为: #define MAXSIZE 100/*数组的最大长度*/ typedef int keytype typedef struct keytype key;/*关键字项*/infotype otherinfo;/*其它数据项*/ redtype; typedef stru

3、ct redtype rMAXSIZE+1;/*存放记录中各个数据项的数组*/int length;/*数组长度*/Sqlist; 1对给定的数组,用直接插入排序(插入排序的一种)对它进行排序,观察数组在排序 前后的变化情况。 2对给定的数组,用起泡排序(交换排序的一种)对它进行排序,观察数组在排序前后 的变化情况。 3对给定的数组,用直接选择排序(选择排序的一种)对它进行排序,观察数组在排序 前后的变化情况。四、四、程序流程:程序流程: (1 1)直接插入排序:)直接插入排序: #define MAXSIZE 100 #define N 10 typedef int keytype; typ

4、edef structkeytype key;redtype; typedef structredtype rMAXSIZE+1; int length;Sqlist; Sqlist insertsort(Sqlist L)/*直接插入排序函数*/ int i,j;L.length=N;for (i=2;i #define MAXSIZE 100 #define N 10 typedef int keytype; typedef structkeytype key;redtype; typedef structredtype rMAXSIZE+1; int length;Sqlist; Sql

5、ist bubblesort(Sqlist L)/*起泡排序函数*/ int i,j;redtype temp;L.length=N;for (i=1;i=L.length-1;+i)for(j=1;j=L.length-i;+j)if (L.rj+1.keyL.rj.key) temp=L.rj; L.rj=L.rj+1; L.rj+1=temp; /*数据交换*/return L; main()/*主函数*/ Sqlist L; int i; printf(“please input 10 data:n“);/*请求输入 10 个数据*/ for(i=1;i=N;i+)scanf(“%d“

6、,L=bubblesort(L);/*调用起泡排序函数*/ printf(“after bubblesort data is:n“);/*输出排序后的序列*/ for(i=1;i=N;i+)printf(“%5d“,L.ri.key); (3 3)直接选择排序)直接选择排序: : #define MAXSIZE 100 #define N 10 typedef int keytype; typedef structkeytype key;redtype; typedef structredtype rMAXSIZE+1; int length;Sqlist; Sqlist selectsort

7、(Sqlist L)/*直接选择排序函数*/ int i,j,k;redtype temp;L.length=N;for(i=1;i=L.length-1;+i) k=i;for(j=i+1;j=L.length;+j)if (L.rj.keyL.rk.key)k=j; /* k 始终“指向”关键字最小的记录*/if (k!=i) temp=L.ri; L.ri=L.rk; L.rk=temp; return L; main()/*主函数*/ Sqlist L; int i;printf(“please input 10 data:n“);/*请求输入 10 个数据*/for(i=1;i=N;i+)scanf(“%d“,/*调用直接选择排序函数*/L=selectsort(L);printf(“after selectsort data is:n“);/*输出排序后的序列*/for(i=1;i=N;i+)printf(“%5d“,L.ri.key);五、实验数据及结果:五、实验数据及结果:(1 1)直接插入排序:)直接插入排序:(2 2)起泡排序:)起泡排序:(3 3)直接选择)直接选择: :实验总结和感悟:实验总结和感悟:各有各的优点。各有各的优点。教教 师师 评评 语语指导教师:指导教师: 年年 月月 日日

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号