数据结构 内排序实验报告

时间:2024.5.13

通达学院

实验报告

(2011/20##学年 第2学期)

课程名称:数据结构

实验名称:基本内排序算法的验证和性能比较

专 业软件工程

学 生 姓 名朱慧?

班 级 学 号10003102

指 导 教 师陈蕾

日 期2012529

南京邮电大学通达学院


第二篇:数据结构内排序实验报告


一、实验目的

1、了解内排序都是在内存中进行的。

2、为了提高数据的查找速度,需要对数据进行排序。

3、掌握内排序的方法。

二、实验内容

1、设计一个程序exp10—1.cpp实现直接插入排序算法,并输出{9,8,7,6,5,4,3,2,1,0}的排序过程。

(1) 源程序如下所示:

//文件名:exp10-1.cpp

#include

#define MAXE 20 //线性表中最多元素个数

typedef int KeyType;

typedef char InfoType[10];

typedef struct //记录类型

{

KeyType key; //关键字项

InfoType data; //其他数据项,类型为InfoType

} RecType;

void InsertSort(RecType R[],int n) //R[0..n-1]按递增有序进行直接插入排序

{

int i,j,k;

RecType temp;

for (i=1;i

{

temp=R[i];

j=i-1; //从右向左在有序区R[0..i-1]中找R[i]的插入位置

while (j>=0 && temp.key

{

R[j+1]=R[j]; //将关键字大于R[i].key的记录后移

j--;

}

R[j+1]=temp; //j+1处插入R[i]

printf("i=%d,",i); //输出每一趟的排序结果

printf("插入%d,结果为: ",temp);

for (k=0;k

printf("%3d",R[k].key);

printf("\n");

}

}

void main()

{

int i,k,n=10;

KeyType a[]={9,8,7,6,5,4,3,2,1,0};

RecType R[MAXE];

for (i=0;i

R[i].key=a[i];

printf("初始关键字: "); //输出初始关键字序列

for (k=0;k

printf("%3d",R[k].key);

printf("\n");

InsertSort(R,n);

printf("最后结果: "); //输出初始关键字序列

for (k=0;k

printf("%3d",R[k].key);

printf("\n");

}

(2) 运行的结果如下图所示:

2、设计一个程序exp10—2.cpp实现希尔插入排序算法,并输出{9,8,7,6,5,4,3,2,1,0}的排序过程。

(1) 源程序如下所示:

//文件名:exp10-2.cpp

#include

#define MAXE 20 //线性表中最多元素个数

typedef int KeyType;

typedef char InfoType[10];

typedef struct //记录类型

{

KeyType key; //关键字项

InfoType data; //其他数据项,类型为InfoType

} RecType;

void ShellSort(RecType R[],int n) //希尔排序算法

{

int i,j,d,k;

RecType temp;

d=n/2; //d取初值n/2

while (d>0)

{

for (i=d;iR[d..n-1]分别插入各组当前有序区中

{

j=i-d;

while (j>=0 && R[j].key>R[j+d].key)

{

temp=R[j]; //R[j]R[j+d]交换

R[j]=R[j+d];

R[j+d]=temp;

j=j-d;

}

}

printf("d=%d: ",d); //输出每一趟的排序结果

for (k=0;k

printf("%3d",R[k].key);

printf("\n");

d=d/2; //递减增量d

}

}

void main()

{

int i,k,n=10;

KeyType a[]={9,8,7,6,5,4,3,2,1,0};

RecType R[MAXE];

for (i=0;i

R[i].key=a[i];

printf("初始关键字: "); //输出初始关键字序列

for (k=0;k

printf("%3d",R[k].key);

printf("\n");

ShellSort(R,n);

printf("最后结果: "); //输出初始关键字序列

for (k=0;k

printf("%3d",R[k].key);

printf("\n\n");

}

(2) 结果如下图所示:

3、设计一个程序exp10—3.cpp实现冒泡排序算法,并输出{9,8,7,6,5,4,3,2,1,0}的排序过程。

(1) 源程序如下所示:

//文件名:exp10-3.cpp

#include

#define MAXE 20 //线性表中最多元素个数

typedef int KeyType;

typedef char InfoType[10];

typedef struct //记录类型

{

KeyType key; //关键字项

InfoType data; //其他数据项,类型为InfoType

} RecType;

void BubbleSort(RecType R[],int n) //冒泡排序算法

{

int i,j,k;

RecType temp;

for (i=0;i

{

for (j=n-1;j>i;j--) //比较,找出本趟最小关键字的记录

if (R[j].key

{

temp=R[j]; //R[j]R[j-1]进行交换,将最小关键字记录前移

R[j]=R[j-1];

R[j-1]=temp;

}

printf("i=%d,冒出的最小关键字:%d,结果为: ",i,R[i].key); //输出每一趟的排序结果

for (k=0;k

printf("%2d",R[k].key);

printf("\n");

}

}

void main()

{

int i,k,n=10;

KeyType a[]={9,8,7,6,5,4,3,2,1,0};

RecType R[MAXE];

for (i=0;i

R[i].key=a[i];

printf("初始关键字: "); //输出初始关键字序列

for (k=0;k

printf("%2d",R[k].key);

printf("\n");

BubbleSort(R,n);

printf("最后结果: "); //输出初始关键字序列

for (k=0;k

printf("%2d",R[k].key);

printf("\n");

}

(2) 结果如下图所示:

更多相关推荐:
《数据结构》实验报告——排序

数据结构实验报告排序实验题目输入十个数从插入排序快速排序选择排序三类算法中各选一种编程实现实验所使用的数据结构内容及编程思路1插入排序直接插入排序的基本操作是将一个记录到已排好序的有序表中从而得到一个新的记录增...

数据结构排序实验报告

数据结构课程设计报告实验五排序一需求分析本演示程序用C60编写完成各种排序的实现对输入的一组数字实现不同的排序方法对其由小到大顺序输出1分别对直接插入排序希尔排序冒泡排序快速排序选择排序堆排序算法进行编写2对存...

数据结构排序算法实验报告

《数据结构》课程设计报告

数据结构实验报告——排序

1实验要求实验目的学习实现对比各种排序算法掌握各种排序算法的优劣以及各种算法使用的情况实验内容使用简单数组实现下面各种排序算法并进行比较排序算法1插入排序2希尔排序3冒泡排序4快速排序5简单选择排序6堆排序选作...

数据结构实验8排序

实验八排序一实验目的1熟悉掌握教材中所介绍的几种排序方法2学会分析各种内排序算法的性能二实验内容1随机产生20位整数2输入序列编写程序按下列排序方法将序列从小到大排序并输出1冒泡排序2快速排序3纪录每种方法比较...

数据结构快速排序实验报告

一问题描述在操作系统中我们总是希望以最短的时间处理完所有的任务但事情总是要一件件地做任务也要操作系统一件件地处理当操作系统处理一件任务时其他待处理的任务就需要等待虽然所有任务的处理时间不能降低但我们可以安排它们...

数据结构实验报告八-快速排序

实验8快速排序1需求分析1输入的形式和输入值的范围第一行是一个整数n代表任务的件数接下来一行有n个正整数代表每件任务所用的时间中间用空格或者回车隔开不对非法输入做处理及假设用户输入都是合法的2输出的形式输出有n...

数据结构实验报告十四—基数排序

问题描述基数排序是采用分配与收集的办法用对多关键码进行排序的思想实现对单关键码进行排序的方法实现多关键码排序有两种常用的方法1最高位优先MSDMostSignificantDigitfirst2最低位优先LSD...

数据结构排序实验报告

数据结构实验排序姓名陆孟飞学号1219xx29需求分析本演示程序用C60编写完成排序的实现对输入的一组数字实现不同的排序方法对其由小到大顺序输出1分别对直接插入排序希尔排序冒泡排序快速排序选择排序堆排序算法进行...

数据结构-实验报告内排序+

封面学生实验报告学院国际经贸学院课程名称数据结构专业班级09电子商务姓名学号学生实验报告经管类专业用一实验目的及要求1目的掌握内排序的方法2内容及要求实验题101编写一个程序实现直接插入排序算法并输出98765...

数据结构 实验报告 排序

实验报告实验目的1掌握各种排序方法的排序过程2了解一些排序算法的实现实验内容学生的考试成绩表由学生的学号姓名和成绩组成设计一个程序对给定的n个学生信1按分数高低排序打印出每个学生在考试中的排名分数相同的为同一名...

应用数据结构实验报告

学生实验报告书实验课程名称:应用数据结构开课学院:管理学院20##20##学年第2学期实验四实验项目名称:综合算法设计实验日期:20##年6月17日实验者:专业班级:实验类型:综合型一、实验目的、意义1)掌握查…

数据结构排序实验报告(34篇)