考前复习——排序模板

    xiaoxiao2021-08-24  105

    普及组复赛前复习练手

    1、快速排序

    void qsort(int a[],int l,int r) { int i=l,j=r,mid=(l+r)/2,t; do{ while(a[i]<a[mid]) i++; while(a[j]>a[mid]) j--; if(i<=j) { t=a[i];a[i]=a[j];a[j]=t; i++;j--; } }while(i<=j); if(l<j) qsort(a,l,j); if(i<r) qsort(a,i,r); } 2、冒泡排序

    void bsort(int a[]) { bool p; int i,j,t;i=0; do{ p=0;i++; for(j=1;j<=n-i;j++) if(a[j]>a[j+1]) { t=a[j];a[j]=a[j+1];a[j+1]=t; p=1; } }while(p); } 3、插入排序

    void insertsort(int n,int a[]) { int i,x,j; for(i=2;i<=n;i++) { x=a[i];j=i-1; while(x<a[j]) { a[j+1]=a[j]; j--; } a[j+1]=x; } } 4、选择排序

    void selectsort(int n,int a[]) { int i=0,j,t; bool p; do{ p=0;i++; for(j=i;j<=n;j++) if(a[i]>a[j]) { t=a[i];a[i]=a[j];a[j]=t; p=1; } }while(p); }

    转载请注明原文地址: https://ju.6miu.com/read-677013.html

    最新回复(0)