排序—快速排序法

void swap(int *data,int i,int j){
    int tmp=data[i];
    data[i]=data[j];
    data[j]=tmp;
}

int Partition(int *data,int front,int rear){
        int pivot=data[front];
        while(front<rear){
            while(front<rear&&data[rear]>=pivot)
                rear--;
            swap(data,front,rear);
            while(front<rear&&data[front]<=pivot)
                front++;
            swap(data,front,rear);
        }
    return rear;
}

void Sort(int *data,int n,int front,int rear){
        int pivot;
        if(front<rear){
            pivot=Partition(data,front,rear);
            Sort(data,n,front,pivot);
            Sort(data,n,pivot+1,rear);
        }
}

猜你喜欢

转载自blog.csdn.net/qq_39681830/article/details/81205512
今日推荐