快速排序quickSort 算法实现

废话少说,直接show code.

#include<iostream>
using namespace std;
//快速排序partation
int partSort(int *array, int left, int right)        //(左右下标)
{
    int &key = array[right];                         //以最后一个元素为基准
    while(left < right){
        while(left < right && array[left] <= key){
            left++;
        }
        while(left < right && array[right] >= key){
            right--;
        }
        int temp = array[left];
        array[left] = array[right];
        array[right] = temp;
    }
    int tmp = array[left];
    array[left] = key;
    key = tmp;
    return left;
}

void quickSort(int *array, int low, int high){
    int mid;
    if(low >= high) return;
    mid = partSort(array, low, high);
    quickSort(array, low, mid-1);
    quickSort(array, mid+1, high);
}

int main(){
    int input[10]={9,2,1,5,3,8,7,0,6,4};
    quickSort(input, 0, 9);//下标

    for(int i=0; i<length; i++){
        printf("%d ",input[i]);
    }
    printf("\n");
    return 0;
}
发布了28 篇原创文章 · 获赞 15 · 访问量 8274

猜你喜欢

转载自blog.csdn.net/weixin_38976558/article/details/94436087