快排代码

目前用递归写,等我想明白了就用循环试试,据说循环比递归快

int QuickSort(int* arr, size_t len)
{
    if (len <= 1)return 1;
    size_t left=0,right=len-1;
    int X=arr[left];
    bool flag = false;
    while (left<right)
    {
        if (!flag&&arr[right] < X)
        {
            arr[left] = arr[right];
            flag = !flag;
        }
        else if (flag&&arr[left] > X)
        {
            arr[right] = arr[left];
            flag = !flag;
        }
        if (flag)left++;
        else right--;
    }
    arr[left] = X;
    QuickSort(arr, left);
    QuickSort(arr + left + 1, len - left - 1);
    return 0;
}

 

posted @ 2022-03-22 13:14  才出昆仑便不清  阅读(53)  评论(0)    收藏  举报