回答

收藏

如何用java实现快速排序算法

知识点 知识点 836 人阅读 | 0 人回复 | 2023-12-04

您可以使用以下的Java代码来实现快速排序算法:
  w$ B, A" s( H# f+ p( I
  1. public class QuickSort {
  2.     ( Z7 s' q* W5 }% i; x2 }+ W; o' @
  3.     public static void quickSort(int[] arr, int low, int high) { 6 v! P8 G% u* D4 _2 f) d
  4.         if (low < high) { , _( E6 e# i3 a0 \8 N
  5.             int pivot = partition(arr, low, high); & P7 V+ _3 p" P+ b
  6.             quickSort(arr, low, pivot - 1);
  7.             quickSort(arr, pivot + 1, high);
  8.         } 5 S( V' G" s* B- h" B* x
  9.     }
  10.    
  11.     public static int partition(int[] arr, int low, int high) { ! U$ c" m8 [8 [- v! M* m
  12.         int pivot = arr[high];
  13.         int i = low - 1; % p$ C6 D0 o# x7 H5 ]( s3 X7 v6 t
  14.         for (int j = low; j < high; j++) { : H" D0 R! s4 v7 U% t$ Q8 |
  15.             if (arr[j] < pivot) {
  16.                 i++; ' x- Z+ L: L8 @8 F
  17.                 swap(arr, i, j);
  18.             }
  19.         }
  20.         swap(arr, i + 1, high);
  21.         return i + 1;
  22.     } , c* y6 V) c& z' e
  23.     : E- J7 [0 s+ C: q& C' P" w" |
  24.     public static void swap(int[] arr, int i, int j) {
  25.         int temp = arr[i];
  26.         arr[i] = arr[j];
  27.         arr[j] = temp;
  28.     } 1 q( F( o( K- r
  29.     # X4 f0 N* l/ o) k
  30.     public static void main(String[] args) {
  31.         int[] arr = {9, 5, 1, 8, 3, 2, 7};
  32.         quickSort(arr, 0, arr.length - 1); ( @- A% |$ T( |  w: b
  33.         System.out.println("排序后的数组:"); / G& [' G- l( d4 V
  34.         for (int num : arr) {
  35.             System.out.print(num + " ");
  36.         } : q( _& \1 o* z9 \9 z) R) J0 }8 V
  37.     }
  38. } , r0 ?* R0 G( t- o, ^* @; t
复制代码
请注意,这只是快速排序算法的一种实现方式,您也可以使用其他方法来实现。& i' Z1 d7 ?1 z

% W3 {; ?; h9 ]/ R% ^1 h4 H* P8 {- G$ X% `& S5 J' ~
关注下面的标签,发现更多相似文章
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则