实验十五

更新时间:2023-12-23 20:32:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、实验目的

1.掌握交换排序算法基本思想的实现。

2.通过实验掌握起泡法排序和快速排序的具体实现。

二、实验环境

1.硬件:每个学生需配备计算机一台。操作系统:DOS或Windows: 2.软件:DOS或Windows操作系统+Turbo C;

三、实验要求

1.对随机若干个数据进行直接起泡法排序和快速排序。 2.掌握这2种基本排序的算法思想和实现过程。

四、实验内容

1.在自己的U盘的“姓名+学号”文件夹中创建“实验15”,本次实验的所有程序和数据都要求存储到本文件夹中。

2.设计随机数来测试排序算法运行时间的程序,其中可以通过修改RANDNUM的值来更改测试的数据值。具体参考如下:

# define RANDNUM 10000 //随机数的个数 For(i=0;i

iRandNum[i]=rand()%RANDNUM; }

3.对随机数据进行起泡法排序和快速排序。

4.排序算法进行测试,记录运行时间;把需排序的数改为20000,进行同样测试,并比较测试结果。

五、代码如下

#include #include

#define randnum 10//随机数的个数定为10 //冒泡排序

void ylx_bubbling(int a[]){ int b;

for(int i=1;i

for(int j=i+1;ja[j]){ b=a[i]; a[i]=a[j]; a[j]=b; } }

}//把每个元素放到该放的地方 }

//快速排序

int ylx_partition(int a[],int low,int high){

a[0]=a[low];

while(low

while(low=a[0]){ --high;

}//while寻找后面比待插入的打的元素 a[low]=a[high];//放在高的位置 while(low

}//while相反的,从另外一边开始寻找比待插入的小的元素 a[high]=a[low]; }

a[low]=a[0]; return low; }

//递归形式的快速排序

void ylx_qsort(int a[],int low,int high){ if(low

int ylx_pivotloc=ylx_partition(a,low,high); //开始一分为二

ylx_qsort(a,low,ylx_pivotloc-1); //对低子表递归排序,pivotloc是枢轴位置

ylx_qsort(a,ylx_pivotloc+1,high); } }

void main(){

int ylx_irand[randnum+1]; for(int i=1;i

ylx_qsort(ylx_irand,1,randnum); printf(\冒泡排序\\n\ //bubbling(irand);

for(int j=1;j

printf(\第%d个元素是:%d\\n\ } }

六、运行结果截图

本文来源:https://www.bwwdw.com/article/yq65.html

Top