欢迎来到天天文库
浏览记录
ID:26213961
大小:72.50 KB
页数:11页
时间:2018-11-25
《排序算法的比较及时间》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、/***************************************************************题目:排序算法比较设计目的:1.掌握各种排序的基本思想。2.掌握各种排序方法的算法实现。3.掌握各种排序方法的优劣分析及花费的时间的计算。4.掌握各种排序方法所适应的不同场合。二、设计内容和要求利用随机函数产生30000个随机整数,利用插入排序、起泡排序、选择排序、快速排序、堆排序、归并排序等排序方法进行排序,并统计每一种排序上机所花费的时间。函数说明cha_ru_sort(intnData[],unsig
2、nedintnNum)插入排序maopao_sort(intmaopao_data[],intmaopao_n)起泡排序select_sort(int*Data,intnLen)选择排序QuickSort(int*pData,intnLen)快速排序HeapSort(intarray[],intlength)堆排序MergeSort(intsourceArr[],inttargetArr[],intstartIndex,intendIndex)归并排序无参数返回************************************
3、**************************/#include#include//#include"stdlib.h"??//随机函数头文件#include#definerand_number30000//产生随机数的个数intrand_numbers_30000_0[rand_number]={0},rand_numbers_30000_1[rand_number]={0};intmin,max;//随机数的范围//***************************
4、************************************//功能:产生随机数//无参数返回//**************************************************************voidproduce_rand_num(){inti;for(i=0;i5、**************************///函数名:插入排序////功能描述:插入排序从下到大,nData为要排序的数据,nNum为数据的个数,该排序是稳定的排序//一个数就是已经排列好的了,所以从数组第二个数开始进行插入排序////无参数返回/*********************************************************************************/voidcha_ru_sort(intnData[],unsignedintnNum){unsignedinti,6、j,k;for(i=1;inTemp)//找到位置,然后插入该位置,之后的数据后移{for(k=i;k>j;--k)//数据后移{nData[k]=nData[k-1];}nData[j]=nTemp;//将数据插入到指定位置break;}}}}/*******************************************************7、**************************///函数名:冒泡排序////功能描述:/*********************************************************************************///冒泡排序,maopao_data要排序的数据,maopao_n数据的个数voidmaopao_sort(intmaopao_data[],intmaopao_n){unsignedcharflag=0;//flag为1表示排序结束,初始化为0inti,j;intnTemp;/8、/i从[0,maopao_n-1)开始冒泡,确定第i个元素for(i=0;i
5、**************************///函数名:插入排序////功能描述:插入排序从下到大,nData为要排序的数据,nNum为数据的个数,该排序是稳定的排序//一个数就是已经排列好的了,所以从数组第二个数开始进行插入排序////无参数返回/*********************************************************************************/voidcha_ru_sort(intnData[],unsignedintnNum){unsignedinti,
6、j,k;for(i=1;inTemp)//找到位置,然后插入该位置,之后的数据后移{for(k=i;k>j;--k)//数据后移{nData[k]=nData[k-1];}nData[j]=nTemp;//将数据插入到指定位置break;}}}}/*******************************************************
7、**************************///函数名:冒泡排序////功能描述:/*********************************************************************************///冒泡排序,maopao_data要排序的数据,maopao_n数据的个数voidmaopao_sort(intmaopao_data[],intmaopao_n){unsignedcharflag=0;//flag为1表示排序结束,初始化为0inti,j;intnTemp;/
8、/i从[0,maopao_n-1)开始冒泡,确定第i个元素for(i=0;i
此文档下载收益归作者所有