快速排序

来源:互联网 发布:青岛 大数据 编辑:程序博客网 时间:2024/06/08 05:55
//快速排序一次划分int Partition(int r[], int first, int end){int i=first; //初始化int j=end;int temp;        while (i<j){         while (i<j && r[i]<= r[j])j--;//右侧扫描       if (i<j){ temp=r[i];//将较小记录交换到前面r[i]=r[j];r[j]=temp;        i++; }       while (i<j && r[i]<= r[j]) i++;//左侧扫描           if (i<j){              temp=r[j];          r[j]=r[i];          r[i]=temp;//将较大记录交换到后面               j--; }    }      return i;//i为轴值记录的最终位置}void QuickSort(int a[],int p,int r){    if (p<r){        int q=partion(a,p,r);        QuickSort(a,p,q-1);        QuickSort(a,q+1,r);    }} int main(){    int array[]={0,-2,11,-4,13,-5,14,-43};    QuickSort(array,0,7);    for(int i=0;i<=7;i++)        cout<<array[i]<<" ";    cout<<endl;    return 0; }


原创粉丝点击