久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Java快速排序的方法有哪些

164次閱讀
沒有評論

共計 1018 個字符,預計需要花費 3 分鐘才能閱讀完成。

Java 中常用的快速排序方法有以下幾種:

  1. 使用遞歸實現的快速排序方法:
public void quickSort(int[] arr, int low, int high) {if (low < high) {int pivot = partition(arr, low, high);
        quickSort(arr, low, pivot - 1);
        quickSort(arr, pivot + 1, high);
    }
}

public int partition(int[] arr, int low, int high) {int pivot = arr[high];
    int i = low - 1;
    for (int j = low; j < high; j++) {if (arr[j] < pivot) {
            i++;
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }
    int temp = arr[i + 1];
    arr[i + 1] = arr[high];
    arr[high] = temp;
    return i + 1;
}
  1. 使用棧實現的非遞歸快速排序方法:
public void quickSort(int[] arr, int low, int high) {Stack<Integer> stack = new Stack<>();
    stack.push(low);
    stack.push(high);

    while (!stack.isEmpty()) {high = stack.pop();
        low = stack.pop();
        int pivot = partition(arr, low, high);

        if (pivot - 1 > low) {stack.push(low);
            stack.push(pivot - 1);
        }
        if (pivot + 1 < high) {stack.push(pivot + 1);
            stack.push(high);
        }
    }
}

public int partition(int[] arr, int low, int high) {int pivot = arr[high];
    int i = low - 1;
    for (int j = low; j < high; j++) {if (arr[j] < pivot) {
            i++;
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }
    int temp = arr[i + 1];
    arr[i + 1] = arr[high];
    arr[high] = temp;
    return i + 1;
}

這些方法都是基于快速排序的原理實現的,可以根據需要選擇合適的方法來實現快速排序算法。

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2024-05-27發表,共計1018字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 广宁县| 赤城县| 黎川县| 沾益县| 错那县| 灌南县| 盘山县| 汝州市| 曲阜市| 海林市| 乐都县| 龙海市| 锡林郭勒盟| 蚌埠市| 辽阳市| 天峨县| 农安县| 乐昌市| 双鸭山市| 陵川县| 霍山县| 扶绥县| 瓮安县| 凌云县| 鄂温| 静乐县| 黔东| 扎鲁特旗| 涟水县| 涡阳县| 灵丘县| 阿克| 黔东| 康定县| 高安市| 尚志市| 杂多县| 陆丰市| 文水县| 中江县| 克山县|