快速排序

来源:互联网 发布:淘宝正版汉服店铺推荐 编辑:程序博客网 时间:2024/05/16 23:55


int partition(int a[], int low, int high)
{
    int pivot = a[low];
    int i = low;
    int j = high;
    while(i != j)
    {
        while(i < j && (a[j] >= pivot)) j--;
        if(i < j) a[i++] = a[j];
        while(i < j && (a[i] <= pivot)) i++;
        if(i < j) a[j--] = a[i];
    }
    a[i] = pivot;
    return i;
}
void quicksort(int a[], int left, int right)
{
    if(left < right)
    {
        int p = partition(a, left, right);
        quicksort(a, left, p-1);
        quicksort(a, p+1, right);
    }
}

原创粉丝点击