#include#include#include#includevoidbu"> #include#include#include#includevoidbu" />
十六种经典排序算法.doc

十六种经典排序算法.doc

ID:55766413

大小:48.00 KB

页数:15页

时间:2020-06-06

十六种经典排序算法.doc_第1页
十六种经典排序算法.doc_第2页
十六种经典排序算法.doc_第3页
十六种经典排序算法.doc_第4页
十六种经典排序算法.doc_第5页
资源描述:

《十六种经典排序算法.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、//头文件定义#include"stdafx.h"#include#include#include#include#includevoidbubbleSort(int*a,intlen);//冒泡算法voidUpdBubbleSort1(int*a,intlen);//改进冒泡算法1----找到一次循环的已排好序位置voidUpdbubbleSort2(int*a,intlen);//改进冒泡算法2--一次循环找到最大最小值voi

2、dquickSort_update(int*a,intlen,intk);//改进快速排序--先使>8的块基本有序--实测比一般快速排序节约28%时间(59秒,1亿条随机数据,逆序数时间较长)voidqsort_improve(int*a,intlow,inthigh,intk);//改进快速排序子算法voidInsertSort(int*a,intn);//直接插入排序voidshellSort(int*a,intn);//直接插入排序威力加强版本--希尔排序(适用逆序数,1亿逆序数据93s1亿随机数据223s)voidShe

3、llSort_local(int*a,intlen,intdk);voidHeapSort(int*H,intlength);//堆排序-step1:建堆2:n/2个父节点堆有序3、从堆尾元素依次和堆顶交换voidBuildingHeap(int*H,intlength);//堆排序---子函数(逆序数据50s,1亿条随机数据133秒)voidHeapAdjust(int*H,ints,intlength);//堆排序---子函数unsignedlongulrand(void);//产生大的随机数voidselectSort(i

4、nt*a,intn);//选择排序intSelectMinKey(int*a,intn,inti);voidSelectSort_double(int*r,intn);typedefintElemType;voidMergeSort(ElemType*r,ElemType*rf,intlenght);//归并排序(1亿逆序:30s1亿随机:46s)voidMerge(ElemType*r,ElemType*rf,inti,intm,intn);//65148-65149/*总结提升算法效率方法1、减小循环次数,大循环在里面,小循

5、环再外面-----循环次数多的话切换用时多,2、侦测已完成任务,提前结束3、递归算法占用的空间较大,容易溢出,优点是算法复杂度低*/voidQuickSort(int*a,intlow,inthigh);//(全完逆序100w数据40分钟---已验证)intLocalQuickSort(int*a,intlow,inthigh);voidSwap(int*p1,int*p2);voidPrintArray(int*a,intlen);voidInitArray(int*a,intlen);intfirst_posi=0;intp

6、rivotKey=0;intSortOkSign=0;//无//需交换的标志#definelenArrintlastChangePos=lenArr-1;//最后一次交换的位置intgloData=0;intk=0,m=0,n=0,x=0;int*p=(int*)malloc(lenArr*sizeof(int));intb[lenArr];intmain(){//intlen=5;if(p==NULL){printf("mallocError");return0;}clock_tstart_2,end_2;//InitArra

7、y(p,lenArr);//start_1=clock();//开始时间start_1,end_1,//InsertSort(p,lenArr);//UpdbubbleSort2(p,lenArr);//QuickSort(p,0,lenArr-1);//PrintArray(p,lenArr);//quickSort_update(p,lenArr-1,10);//InsertSort(p,lenArr);//HeapSort(p,lenArr);//MergeSort(p,b,lenArr);//end_1=clock();

8、//结束时间InitArray(p,lenArr);//PrintArray(p,lenArr);start_2=clock();//结束时间//shellSort(p,lenArr);//bubbleSort(p,lenArr);HeapSort(p,lenA

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。