回答

收藏

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

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

您可以使用以下的Java代码来实现快速排序算法:

6 T: S+ r- Z0 Z: s8 T7 |1 i1 b
  1. public class QuickSort {
  2.     ! A4 ]0 A% F9 @1 e0 x
  3.     public static void quickSort(int[] arr, int low, int high) {
  4.         if (low < high) { , e& p2 S( O2 e$ `& |7 g
  5.             int pivot = partition(arr, low, high);
  6.             quickSort(arr, low, pivot - 1);
  7.             quickSort(arr, pivot + 1, high); 3 Q7 y. c8 T( [4 `: D$ [# A0 i# K8 s7 q6 p
  8.         } ( T. L0 |8 F9 \; U# L$ e
  9.     } & J' t7 K- q/ m# o+ ?
  10.    
  11.     public static int partition(int[] arr, int low, int high) { # {2 ]) v2 p- \  W; ]
  12.         int pivot = arr[high]; 7 ]' M0 H% p; V8 `% Z9 G+ g+ H
  13.         int i = low - 1;
  14.         for (int j = low; j < high; j++) { ! j9 F7 F/ c" c, f* Z
  15.             if (arr[j] < pivot) { " f; K2 P5 u% w5 V6 \5 l
  16.                 i++; - G, S& t+ n: V5 T' E
  17.                 swap(arr, i, j);
  18.             } ! J+ B3 X9 s8 X8 x! M, {3 j- Q
  19.         }
  20.         swap(arr, i + 1, high);
  21.         return i + 1; 6 q6 t2 z( Y9 h# O
  22.     }
  23.     ! Y  Y8 ?$ T: y: Z/ J3 P$ U2 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.     }
  29.     ; m. Q0 q$ {0 T
  30.     public static void main(String[] args) {
  31.         int[] arr = {9, 5, 1, 8, 3, 2, 7}; % B# \: U; U3 v' U
  32.         quickSort(arr, 0, arr.length - 1); ' {: w* H& h; U
  33.         System.out.println("排序后的数组:"); 7 A( X, |0 t- e. j
  34.         for (int num : arr) { ; h2 B4 \8 l' e- y! P
  35.             System.out.print(num + " ");
  36.         }
  37.     } 3 }7 E% c+ \* A/ B/ r' u; _% F
  38. } # g  r& b% Q0 Q6 n
复制代码
请注意,这只是快速排序算法的一种实现方式,您也可以使用其他方法来实现。
8 d/ O4 g1 j* V' i  y
$ q  r4 S. I% u3 @& Z% t% a% n
关注下面的标签,发现更多相似文章
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则