java的快速排序怎么写

Java的快速排序可以使用以下代码来实现:

public void quickSort(int[] arr, int low, int high) {
    if (arr == null || arr.length == 0)
        return;

    if (low >= high)
        return;

    // 找寻基准数据的正确索引
    int middle = low + (high - low) / 2;
    int pivot = arr[middle];

    // 将基准数据放在最高位置
    arr[middle] = arr[high];
    arr[high] = pivot;

    // 数组中比基准小的放在左边,比基准大的放在右边
    int i = low, j = high;
    while (i < j) {
        while (i < j &amp;&amp; arr[i] <= pivot) {
            i++;
        }
        while (i < j &amp;&amp; arr[j] >= pivot) {
            j--;
        }
        if (i < j) {
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }

    // 最后将基准为与i和j相等位置的数字交换
    arr[high] = arr[i];
    arr[i] = pivot;

    // 递归,继续排序基准左边和右边的数字
    quickSort(arr, low, j - 1);
    quickSort(arr, j + 1, high);
}

上面的代码中,arr 是要进行排序的数组,lowhigh 分别是数组的左端点和右端点。在函数中,我们先将数组的中间元素作为基准数据,然后将基准数据放到数组的最高位置。接着,我们使用两个指针 ij 分别指向数组的左端点和右端点,并使用循环不断移动这两个指针,直到 i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值