欢迎来到天天文库
浏览记录
ID:57693746
大小:37.50 KB
页数:4页
时间:2020-09-01
《【c++版】直接选择排序法,直接插入排序法、快速排序法、堆排序法、冒泡排序发,实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、#includeusingnamespacestd;typedefintElemType;//直接插入排序voidInsertSort(ElemTypeA[],intn){inti,j;ElemTypex;for(i=1;i=0;j--){//从第i-1个开始往前找插入点if(x2、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+14、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(i6、{//交换基准元素A[s]=A[j];A[j]=x;}if(s>A[j];cout<<"排序前为:"<7、ut<
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+14、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(i6、{//交换基准元素A[s]=A[j];A[j]=x;}if(s>A[j];cout<<"排序前为:"<7、ut<
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(i6、{//交换基准元素A[s]=A[j];A[j]=x;}if(s>A[j];cout<<"排序前为:"<7、ut<
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(i6、{//交换基准元素A[s]=A[j];A[j]=x;}if(s>A[j];cout<<"排序前为:"<7、ut<
6、{//交换基准元素A[s]=A[j];A[j]=x;}if(s>A[j];cout<<"排序前为:"<7、ut<
7、ut<
此文档下载收益归作者所有