资源描述:
《算法实验(比较不同排序算法).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、攀枝花学院实验报告实验课程:计算机算法实验实验项目:比较多种不同排序算法实验日期:2013.3.26系:数学与计算机学院班级:软件工程姓名:冯斌学号:4指导教师:银星成绩:【实验目的:】1.掌握基本的排序算法2.学习各种算法实现的优劣3.掌握vc++6.0环境下程序的编写和调试【实验设备器材:】1.pc机一套2.java相应编译软件【实验原理:】基于直接插入,折半插入排序,冒泡排序,快速排序的实现,并记录其实现所用比较次数。【实验内容:】1.编写相应算法源程序2.在vc++6.0环境下调试通过3.通过程序排序所交
2、换的次数,比较各种算法的优劣程序代码如下:#include#include#include#defineRecordtypeintvoidcopy(Recordtypes[],Recordtyped[],intn);/************************************************************************//*直接插入法*//*****************************************************
3、*******************/intcmpTforIs=0;//记录插入法的比较次数intChgTforIs=0;//记录插入法的交换次数voidInsertSort(Recordtypedata[],intn);/************************************************************************//*折半插入法*//************************************************************************/int
4、cmpTforBinarys=0;//记录冒泡的比较次数intChgTforBinarys=0;//记录冒泡的交换次数voidBinarySearchInsertion(intnumbers[],constintn);/************************************************************************//*冒泡法*//************************************************************************/intcmpTf
5、orBs=0;//记录冒泡的比较次数intChgTforBs=0;//记录冒泡的交换次数voidBubsort(Recordtype*start,Recordtype*end);/************************************************************************//*快排*//************************************************************************/intcmpTforQs=0;//记录快排的比较次数int
6、ChgTforQs=0;//记录快排的交换次数intquickPass(intstart,intlast,Recordtyperecord[]);intquickSort(intstart,intlast,Recordtyperecord[]);intmain(){RecordtypeData[100];RecordtypeD[100];srand(time(NULL));printf("therand100numbersare:");for(inti=0;i<100;i++){D[i]=rand()%1000;//便于观察,每次产生
7、1000内的整数printf("%d",D[i]);}printf("");copy(D,Data,100);BinarySearchInsertion(Data,100);printf("折半插入法的比较次数为%d,交换次数为%d",cmpTforBinarys,ChgTforBinarys);copy(D,Data,100);InsertSort(Data,100);printf("直接插入法的比较次数为%d,交换次数为%d",cmpTforIs,ChgTforIs);copy(D,Data,100);Bubsor
8、t(&Data[0],&Data[99]);printf("冒泡法的比较次数为%d,交换次数为%d",cmpTforBs,ChgTforBs);copy(D,Data,100);quick