leetcode上面快速排序为什么会超出时间限制

问题遇到的现象和发生背景

912、排序数组

问题相关代码,请勿粘贴截图
class Solution {
    void quicksort(vector<int>& nums,int low,int high)
{
    if(low < high){
    int left = low;
    int right = high;
    int pivot = nums[left];
    while(left < right)
    {
        while(left < right&&nums[right]>=pivot)
            right--;
        nums[left] = nums[right];

        while(left<right&&nums[left]<=pivot)
            left++;
        nums[right] = nums[left];   
    }
    nums[left] = pivot;
    quicksort(nums,low,left-1);
    quicksort(nums,left+1,high);
    }  
}
public:
    vector<int> sortArray(vector<int>& nums) {
        quicksort(nums,0,nums.size()-1);
        return nums;
    }
};

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

这样快一些

class Solution {
public:
    void quick_sort(vector<int>& q,int l,int r)  //快速排序
    {
        if(l >= r) return;
        int x = q[l + (r - l) / 2],i = l - 1,j = r + 1;
        while(i < j)
        {
            while(q[++i] < x);
            while(q[--j] > x);
            if(i < j) swap(q[i], q[j]);
        }
        quick_sort(q, l, j);
        quick_sort(q, j + 1, r);
    }
  
    vector<int> sortArray(vector<int>& nums) {
        quick_sort(nums, 0, nums.size() - 1);
        return nums;
    }
};