1 / 8
文档名称:

直接插入排序冒泡排序快速排序—于—实验七样稿.doc

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

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

分享

预览

直接插入排序冒泡排序快速排序—于—实验七样稿.doc

上传人:书犹药也 2020/11/25 文件大小:64 KB

下载得到文件列表

直接插入排序冒泡排序快速排序—于—实验七样稿.doc

相关文档

文档介绍

文档介绍:宁德师范学院计算机系
试验汇报
( —201 5年 第 一 学期)
课程名称
数据结构
试验名称
试验七
数据排序和检索
专 业
计算机科学和技术
年 级

学 号
B
姓名

指导老师
毛雁明
试验日期
-12-2
试验目标和要求:
1、掌握数据结构中多个常见排序方法:插入排序、快速排序、选择排序等。
2、碰到实际问题能够选择合适排序方法处理。
试验设备(环境):
微机、C语言编程环境(VC++)
试验内容:
给定数组list[N]={213, 111, 222, 77, 400, 300, 987, 1024, 632, 555},试分别用直接插入排序、冒泡排序、快速排序对上述数据进行排序。
要求:每种排序算法编写为独立自定义函数且要求输出每趟排序后数据排列序列情况。
试验步骤、试验结果及分析:
函数代码
#include<>
# 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].key<r[j].key)
{
r[j+1]=r[j];
j--;
}
r[j+1]=r[0];
}
}
void bubblesort(SeqList r)
{
int i,j,exchange;
for(i=1;i<n;i++)
{
exchange=0;
for(j=n-1;j>=i;j--)
if(r[j+1].key<r[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(i<j)
{
while(i<j&&r[j].key>=)
j--;
if(i<j)
r[i++]=r[j];
while(i<j&&r[i].key<=)
i++;
if(i<j)
r[j--]=r[i];
}
r[i]=pivot;
return i;
}
void quicksort(SeqList r,int low,int high)
{
int pivotpos;
if(low<high)
{
pivotpos=partition(r,low,high);
quicksort(r,low,pivotpos-1);
quicksort(r,pivotp