全部回复 共 2 条

  1. chenheling #1 ·

    (内容为空)

  2. 芝士不拉丝 #2 ·

    zvoid quickSort(int* arr, int low, int high) {

    if (low >= high) { // 结束标志
        return;
    }
    
    int first = low; //地位坐标
    int last = high; //高位坐标
    int key = arr[first]; //设置第一个为基准
    
    while (first < last) {
        //将比第一个小的移到前面
        while (first < last && arr[last] >= key) {
            last--;
        }
        if (first < last) {
            arr[first++] = arr[last];
        }
        
        //将比第一个大的移到后面
        while (first < last && arr[first] <= key) {
            first++;
        }
        if (first < last) {
            arr[last--] = arr[first];
        }
    }
    
    arr[first] = key;
    
    //前半递归
    quickSort(arr, low, first - 1);
    //后半递归
    quickSort(arr, first + 1, high);
    

    }

发表回复