编辑代码

void main() {
  List<int> nums = [18,3,65, 45, 7, 5, 9, 12, 34, 8, 9];
  quickSort(nums, 0, nums.length -1);
  print(nums);
}

quickSort(List<int> nums, int left, int right) {
    if(left>=right) return;
    int pivot = findPivot(nums, left, right);
    quickSort(nums, left, pivot -1);
    quickSort(nums, pivot +1, right);
}

findPivot(List<int> nums, int left, int right) {
    int base = left;
    int l = left;
    int r = right;
    while(l<r){
        while(l<r&& nums[r]>= nums[base]) r--;
        while(l<r&& nums[l]<= nums[base]) l++;
        swip(nums, l, r);
    }
    swip(nums, base, l);
    return l;
}

swip(List<int> nums, int left, int right) {
    int temp = nums[left];
    nums[left] = nums[right];
    nums[right] = temp;
}