欢迎来到天天文库
浏览记录
ID:44704210
大小:52.01 KB
页数:4页
时间:2019-10-25
《【c++版】直接选择排序法,直接插入排序法、快速排序法、堆排序法、冒泡排序发,实验》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、#includeusingnamespacestd;typedefintElemType;//直接插入排序voidInsertSort(ElemTypeA[],intn){inti,j;ElemTypex;for(i=1;i=0;j--){//从第i-1个开始往前找插入点if(x2、emTypeA[],intn){inti,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--)Sif3、t(A,n,i);//调整A[i..n-1]使之为一个堆}voidSift(ElemTypeA[],intn,inti){//调整A[i..n-1]成为一个堆(它的左右子树已是一个堆)ElemTypex=A[i];intj=2*i+1;//j为i的左孩子while(j<=n-1){//i有左子树if(j+14、pSort(ElemTypeA[],intn){//A为待排序表,n为表的长度inti;ElemTypex;CreatHeap(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-5、1趟排序flag=0;//假设本次没有交换for(j=n-1;j>=i;j--)//第i趟if(A[j]6、++;//从左到右while(i<=j&&A[j]>=x)j--;//从右到左if(i>7、A[j];cout<<"排序前为:"<8、i]<
2、emTypeA[],intn){inti,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--)Sif
3、t(A,n,i);//调整A[i..n-1]使之为一个堆}voidSift(ElemTypeA[],intn,inti){//调整A[i..n-1]成为一个堆(它的左右子树已是一个堆)ElemTypex=A[i];intj=2*i+1;//j为i的左孩子while(j<=n-1){//i有左子树if(j+14、pSort(ElemTypeA[],intn){//A为待排序表,n为表的长度inti;ElemTypex;CreatHeap(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-5、1趟排序flag=0;//假设本次没有交换for(j=n-1;j>=i;j--)//第i趟if(A[j]6、++;//从左到右while(i<=j&&A[j]>=x)j--;//从右到左if(i>7、A[j];cout<<"排序前为:"<8、i]<
4、pSort(ElemTypeA[],intn){//A为待排序表,n为表的长度inti;ElemTypex;CreatHeap(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-
5、1趟排序flag=0;//假设本次没有交换for(j=n-1;j>=i;j--)//第i趟if(A[j]6、++;//从左到右while(i<=j&&A[j]>=x)j--;//从右到左if(i>7、A[j];cout<<"排序前为:"<8、i]<
6、++;//从左到右while(i<=j&&A[j]>=x)j--;//从右到左if(i>
7、A[j];cout<<"排序前为:"<8、i]<
8、i]<
此文档下载收益归作者所有