1 / 6
文档名称:

实验五:排序方法的比较.doc

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

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

分享

预览

实验五:排序方法的比较.doc

上传人:文档大全 2018/1/22 文件大小:271 KB

下载得到文件列表

实验五:排序方法的比较.doc

文档介绍

文档介绍:成绩:
实验报告
课程名称:
数据结构实验
实验项目:
排序方法的比较
姓名:
专业:
计算机科学与技术
班级:
计算机
学号:
计算机科学与技术学院
实验教学中心
2017 年12月 20日
实验项目名称: 排序方法的比较
一、实验目的
1. 通过实验掌握排序的基本概念,掌握各种排序的基本思想和算法实现。

二、实验内容
:如起泡排序、直接插入排序、简单选择排序、快速排序等至少四种排序算法。试通过随机数据比较各算法的关键字比较次数和关键字移动次数,以取得直观感受。以实践教学,加深对教材内容的吸收,提升自己。
2. 冒泡排序的基本思想:通过对待排序序列从后向前(从下标较大的元素开始),依次比较相邻元素的排序码,若发现逆序则交换,使排序码较小的元素逐渐从后部移向前部(从下标较大的单元移向下标较小的单元),就象水底下的气泡一样逐渐向上冒。
3. 直接插入排序基本思想:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。
:任取待排序序列中的某个元素作为基准(一般取第一个元素),通过一趟排序,将待排元素分为左右两个子序列,左子序列元素的排序码均小于或等于基准元素的排序码,右子序列的排序码则大于基准元素的排序码,然后分别对两个子序列继续进行排序,直至整个序列有序。
三、实验操作步骤
 
:待排序表的表长不小于100;至少要用5组不同的输入数据作测试; 至少完成四个算法。    
,如果错误的及时找出并改正
四、实验结果分析

五、源代码
#include <>
#include <>
#define OK 1
#define ERROR 0
#define MAX_LENGTH_INSERT_SORT 7 // 用于快速排序时判断是否选用插入排序阙值
#define MAXSIZE 10000 // 用于要排序数组个数最大值,可根据需要修改
#define Max 20
typedef struct{
int r[MAXSIZE+1]; // 用于存储要排序数组,r[0]用作哨兵或临时变量
int length; // 用于记录顺序表的长度
} SqList;
// 交换L中数组r的下标为i和j的值
void swap(SqList *L,int i,int j){
int temp=L->r[i];
L->r[i]=L->r[j];
L->r[j]=temp;
}
void print(SqList L){
int i;
for(i=1; i<; i++)
printf("%d,",[i]);
printf("%d",[i]);
printf("\n");
}
// 对顺序表L作冒泡排序
void BubbleSort(SqL