回答

收藏

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

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

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

& ~7 V0 z3 A1 G7 F5 Y( @# x
  1. public class QuickSort {
  2.    
  3.     public static void quickSort(int[] arr, int low, int high) { : D+ k2 g3 ?, A7 I2 P
  4.         if (low < high) { & ]1 V7 l  L: z3 v8 G- G8 d
  5.             int pivot = partition(arr, low, high);
  6.             quickSort(arr, low, pivot - 1);
  7.             quickSort(arr, pivot + 1, high);
  8.         } ' U* t  [+ H* Y! a8 W+ Z
  9.     }
  10.    
  11.     public static int partition(int[] arr, int low, int high) {
  12.         int pivot = arr[high];
  13.         int i = low - 1;
  14.         for (int j = low; j < high; j++) { 7 a# @: d  `; i; Q; D% M
  15.             if (arr[j] < pivot) {
  16.                 i++;
  17.                 swap(arr, i, j); & r. ]/ _8 b, I) {0 A  ^- G
  18.             } 4 X: d+ x7 J( Z6 t! V" k7 D
  19.         }
  20.         swap(arr, i + 1, high); 3 B  E7 G& A6 f* d/ ]1 B# r
  21.         return i + 1; % e( g% d9 C4 b2 e9 @3 S) O( h9 d$ l
  22.     } 9 P) P6 e3 k2 ^% ?: ~& t
  23.     9 {# r5 w! A6 z$ x# }  z  G. k
  24.     public static void swap(int[] arr, int i, int j) {
  25.         int temp = arr[i]; + L1 h  p0 x( Z) R4 [3 ^. k
  26.         arr[i] = arr[j];
  27.         arr[j] = temp; ' [6 {, R  ~6 y9 T' ?
  28.     } 5 M& z. [/ d) {0 A/ r
  29.    
  30.     public static void main(String[] args) { ( D& z! {( g- S+ @
  31.         int[] arr = {9, 5, 1, 8, 3, 2, 7}; 2 @# O, a: [& l3 g2 C
  32.         quickSort(arr, 0, arr.length - 1); * t8 d) \7 Y: G5 W5 A7 A& E+ n, b
  33.         System.out.println("排序后的数组:");
  34.         for (int num : arr) {
  35.             System.out.print(num + " "); 2 K0 Z& `* U! k  c
  36.         }
  37.     }
  38. }
复制代码
请注意,这只是快速排序算法的一种实现方式,您也可以使用其他方法来实现。  i6 p( e+ Y1 c) @7 h  U
. V% q% ]$ H% i8 R4 x5 @
/ P* L8 F0 m- H; \
关注下面的标签,发现更多相似文章
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则