Java快速排序的方法有哪些

avatar
作者
猴君
阅读量:0

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

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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!