回答

收藏

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

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

您可以使用以下的Java代码来实现快速排序算法:
/ K% R- K: r: e' f8 Z% d
  1. public class QuickSort {
  2.    
  3.     public static void quickSort(int[] arr, int low, int high) { + s% Z: ^( J3 j6 S) T0 r% G) y
  4.         if (low < high) { / B! f9 |- M( z1 ?4 @* U8 w! ]
  5.             int pivot = partition(arr, low, high);
  6.             quickSort(arr, low, pivot - 1); 2 O! E; h5 {  K) k( H! J6 k
  7.             quickSort(arr, pivot + 1, high);   n! J( M" L- {) R2 e* G2 d
  8.         } * Z- j, K& w! k/ [4 k# F0 E8 V. A$ g1 ]3 ]
  9.     }
  10.    
  11.     public static int partition(int[] arr, int low, int high) {
  12.         int pivot = arr[high]; 0 u) _3 U; v1 U7 g) o+ m
  13.         int i = low - 1; " e: q, ?' D' m/ q
  14.         for (int j = low; j < high; j++) { ! B7 [9 ]2 w6 D4 ]6 g
  15.             if (arr[j] < pivot) {
  16.                 i++;
  17.                 swap(arr, i, j); 9 ^6 Y: r+ i! ~) v" k$ L1 G3 I
  18.             }
  19.         }
  20.         swap(arr, i + 1, high); 8 t) x5 U# \! d
  21.         return i + 1;
  22.     }
  23.     6 G2 n; C6 s" U: n
  24.     public static void swap(int[] arr, int i, int j) { 5 r% ?3 w  i+ g# t  ]' ?
  25.         int temp = arr[i];
  26.         arr[i] = arr[j]; ( t+ ]1 I) g6 h0 |5 |; M/ P# v1 [2 G
  27.         arr[j] = temp;
  28.     }
  29.    
  30.     public static void main(String[] args) { , G( Y" U# a' V+ x7 C
  31.         int[] arr = {9, 5, 1, 8, 3, 2, 7};
  32.         quickSort(arr, 0, arr.length - 1);
  33.         System.out.println("排序后的数组:");
  34.         for (int num : arr) {
  35.             System.out.print(num + " "); - x# p3 W" S2 k/ m! d. u
  36.         } , a  a/ }9 a7 s" c7 Z$ E
  37.     } * l. s1 s) |3 u1 L7 e) k, [# N
  38. }
复制代码
请注意,这只是快速排序算法的一种实现方式,您也可以使用其他方法来实现。6 e% Y, X9 O% |$ z' @

2 C. `% l; d  h( h; x) o: L. ?" w3 G
关注下面的标签,发现更多相似文章
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则