实验六答:各种排序算法.docxVIP

  • 4
  • 0
  • 约2.51千字
  • 约 7页
  • 2017-02-01 发布于北京
  • 举报
实验六答:各种排序算法

实验五:各种排序算法的比较程序:#includestdio.htypedef struct{int key;}Node;void Dinsert_sort(Node r[],int n){int i,j,k;for(i=2;i=n;i++){r[0]=r[i];for(j=i-1;r[0].keyr[j].key;j--);for(k=i-1;kj;k--)r[k+1]=r[k];r[j+1]=r[0];}}void Bi_insertsort(Node r[],int n){int i,j,low,high,mid;for(i=2;i=n;i++){r[0]=r[i];low=1;high=i-1;while(low=high){mid=(low+high)/2;if(r[0].keyr[mid].key)high=mid-1;elselow=mid+1;}for(j=i-1;j=low;j--)r[j+1]=r[j];r[low]=r[0];}}void Shell_insert(Node r[],int n,int d){int i,j;for(i=d+1;i=n;i++){r[0]=r[i];for(j=i-d;j0r[0].keyr[j].key;j=j-d)r[j+d]=r[j];r[j+d]=r[0];}}void Shell_sort(Node r[],int n,int dt[],int t){int k;for(k=0;k=t-1;k++)Shell_insert(r,n,dt[k]);}void Bubble_sort(Node r[],int n){int i,j,flag;for(i=1;in;i++){flag=0;for(j=n;j=i;j--)if(r[j].keyr[j-1].key){r[0]=r[j];r[j]=r[j-1];r[j-1]=r[0];flag=1;}if(!flag)break;}} int Partition(Node r[],int low,int high){if(low==high)return low;r[0]=r[low];while(lowhigh){while(lowhighr[high].key=r[0].key)high--;if(lowhigh){r[low]=r[high];low++;}while(lowhighr[low].key=r[0].key)low++;if(lowhigh){r[high]=r[low];high--;}}r[low]=r[0];return low;}void Qsort(Node r[],int s,int t){int i;if(s=t)return;i=Partition(r,s,t);Qsort(r,s,i-1);Qsort(r,i+1,t);}void Quick_sort(Node r[],int n){Qsort(r,1,n);}void Select_sort(Node r[],int n){int i,j,k;for(i=1;in;i++){for(k=i,j=i+1;j=n;j++)if(r[j].keyr[k].key)k=j;if(i!=k){r[0]=r[k];r[k]=r[i];r[i]=r[0];}}}void Sift(Node r[],int s,int t){int i,j;r[0]=r[s];i=s;j=2*i;while(j=t){if(j+1=tr[j+1].keyr[j].key)j++;if(r[0].keyr[j].key){r[i]=r[j];i=j;j=2*i;}elsebreak;}r[i]=r[0];}void Heat_sort(Node r[],int n){int i;for(i=n/2;i=1;i--)Sift(r,i,n);for(i=n;i=2;i--){r[0]=r[i];r[i]=r[1];r[1]=r[0];Sift(r,1,i-1);}}void main(){Node r[5]={5,2,7,8,3};int i,flag;int dt[3]={2,1};printf(排序前,数组为:);for(i=0;i5;i++)printf(%d ,r[i].key);printf(\n\n);printf(----------------请选择排序算法-------------------\n);printf(----------------1、直接插入排序:----------------\n);printf(----------------2、二分插入排序:----------------\n);printf(----------------3

文档评论(0)

1亿VIP精品文档

相关文档