【c++版】直接选择排序法,直接插入排序法、快速排序法、堆排序法、冒泡排序发,实验.doc

【c++版】直接选择排序法,直接插入排序法、快速排序法、堆排序法、冒泡排序发,实验.doc

ID:57693746

大小:37.50 KB

页数:4页

时间:2020-09-01

【c++版】直接选择排序法,直接插入排序法、快速排序法、堆排序法、冒泡排序发,实验.doc_第1页
【c++版】直接选择排序法,直接插入排序法、快速排序法、堆排序法、冒泡排序发,实验.doc_第2页
【c++版】直接选择排序法,直接插入排序法、快速排序法、堆排序法、冒泡排序发,实验.doc_第3页
【c++版】直接选择排序法,直接插入排序法、快速排序法、堆排序法、冒泡排序发,实验.doc_第4页
资源描述:

《【c++版】直接选择排序法,直接插入排序法、快速排序法、堆排序法、冒泡排序发,实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、#includeusingnamespacestd;typedefintElemType;//直接插入排序voidInsertSort(ElemTypeA[],intn){inti,j;ElemTypex;for(i=1;i=0;j--){//从第i-1个开始往前找插入点if(x

2、i,j,k;ElemTypex;for(i=0;i<=n-2;i++){//每一趟选择最小元素并与A[i]交换k=i;for(j=i+1;j<=n-1;j++)//查找最小元素的下标if(A[j]=0;i--)Sift(A,n,i);//调整A[i..n-1]使之为一个堆}voidSift(

3、ElemTypeA[],intn,inti){//调整A[i..n-1]成为一个堆(它的左右子树已是一个堆)ElemTypex=A[i];intj=2*i+1;//j为i的左孩子while(j<=n-1){//i有左子树if(j+1

4、atHeap(A,n);//把A建成一个堆for(i=n-1;i>=1;i--){x=A[0];//第个元素与第i个元素交换A[0]=A[i];A[i]=x;Sift(A,i,0);//调整A[0..i-1]使之为一个堆}}//冒泡排序voidBubbleSort(ElemTypeA[],intn){inti,j,flag;//flag为交换标记ElemTypex;for(i=1;i<=n-1;i++){//最多n-1趟排序flag=0;//假设本次没有交换for(j=n-1;j>=i;j--)//第i趟if(A[j]

5、A[j];A[j]=A[j-1];A[j-1]=x;}if(flag==0)return;}}//快速排序voidQuickSort(ElemTypeA[],ints,intt){//递归算法,对区间A[s]~A[t]进行快速排序inti=s+1,j=t;ElemTypetemp,x=A[s];//第一个为基准元素while(i<=j){while(i<=j&&A[i]<=x)i++;//从左到右while(i<=j&&A[j]>=x)j--;//从右到左if(i

6、{//交换基准元素A[s]=A[j];A[j]=x;}if(s>A[j];cout<<"排序前为:"<

7、ut<

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

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

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