Partition函数

来源:互联网 发布:中国的阿拉伯之春 知乎 编辑:程序博客网 时间:2024/05/22 10:34
#include<iostream>using namespace std;int Partition(int arr[],int low,int high){    int nSmall = low-1;    for(;low<high;low++)    {        if(arr[low] < arr[high])        {            nSmall++;            if(low != nSmall)            {                arr[low] = arr[low] ^ arr[nSmall];                arr[nSmall] =arr[low] ^arr[nSmall];                arr[low] =arr[low] ^ arr[nSmall];            }        }    }    nSmall++;    if(nSmall != high)    {        arr[high] = arr[high] ^ arr[nSmall];        arr[nSmall] =arr[high] ^arr[nSmall];        arr[high] =arr[high] ^ arr[nSmall];    }    return nSmall;}void QuickSort(int arr[],int low,int high){    if(low < high)    {        int mid = Partition(arr,low,high);        QuickSort(arr,low,mid-1);        QuickSort(arr,mid+1,high);    }}int main(){    int arr[]={0,3,8,3,8,3,9,2,8,2};    for(int i = 0 ; i < 10 ;i++)    {        cout<<arr[i]<<" ";    }    cout<<endl;    QuickSort(arr,0,9);    for(int i = 0 ; i < 10 ;i++)    {        cout<<arr[i]<<" ";    }    cout<<endl;    return 0;}

1 0
原创粉丝点击