如何用java写一个快速排序算法

avatar
作者
筋斗云
阅读量:2

下面是一个用Java写的快速排序算法示例:

public class QuickSort {      public void sort(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];          int i = low, j = high;         while (i <= j) {             while (arr[i] < pivot) {                 i++;             }              while (arr[j] > pivot) {                 j--;             }              if (i <= j) {                 int temp = arr[i];                 arr[i] = arr[j];                 arr[j] = temp;                 i++;                 j--;             }         }          if (low < j) {             sort(arr, low, j);         }          if (high > i) {             sort(arr, i, high);         }     }      public static void main(String[] args) {         QuickSort quickSort = new QuickSort();         int[] arr = {5, 2, 7, 3, 6, 1, 4};          quickSort.sort(arr, 0, arr.length - 1);          System.out.println("Sorted array:");         for (int num : arr) {             System.out.print(num + " ");         }     } } 

在这个示例中,sort方法使用递归的方式实现了快速排序算法。首先选择数组中间的元素作为pivot,然后将数组分成两部分,一部分比pivot小,一部分比pivot大,然后对这两部分分别进行递归排序。最后在main方法中展示了如何使用这个快速排序算法。

广告一刻

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