44

nzta  •  1年前



评论:


chenheling  •  1年前

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);

}


芝士不拉丝  •  1年前

请先登录,才能进行评论