Java快速排序的方法有哪些

   2024-10-13 7270
核心提示:Java中常用的快速排序方法有以下几种:使用递归实现的快速排序方法:public void quickSort(int[] arr, int low, int high) {if

Java中常用的快速排序方法有以下几种:

使用递归实现的快速排序方法:
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;}
使用栈实现的非递归快速排序方法:
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;}

这些方法都是基于快速排序的原理实现的,可以根据需要选择合适的方法来实现快速排序算法。

 
举报打赏
 
更多>同类维修大全
推荐图文
推荐维修大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号