回答

收藏

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

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

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

$ w* r, l- [' x' T- o
  1. public class QuickSort { 8 |' m! m- u; P4 ~+ _! D& _
  2.    
  3.     public static void quickSort(int[] arr, int low, int high) {
  4.         if (low < high) { 0 i7 E% q3 _7 x, w+ \+ ?. ^, i
  5.             int pivot = partition(arr, low, high);
  6.             quickSort(arr, low, pivot - 1);
  7.             quickSort(arr, pivot + 1, high); 7 J7 p' X/ _- d4 L
  8.         } ; O! j7 J9 ?% F# q* [
  9.     } 8 o$ E: w5 ]5 |) \$ q7 Y1 w
  10.    
  11.     public static int partition(int[] arr, int low, int high) { 1 s4 A7 B/ X" U/ M7 v
  12.         int pivot = arr[high]; " B. k) O$ {! B; d
  13.         int i = low - 1;
  14.         for (int j = low; j < high; j++) {
  15.             if (arr[j] < pivot) { 7 t' ~: c7 ^7 }
  16.                 i++;
  17.                 swap(arr, i, j); 9 V; }& Z; `: Z5 E& g+ [3 H; V$ N: _
  18.             }
  19.         } $ t2 {, _1 T8 b/ {! v$ Q8 M
  20.         swap(arr, i + 1, high); ' o# b4 R7 j3 o; f& q+ c
  21.         return i + 1;
  22.     } 8 c3 z, ?. P6 l0 y# y( Z
  23.    
  24.     public static void swap(int[] arr, int i, int j) {
  25.         int temp = arr[i]; # F: m) O' {0 a  S8 P
  26.         arr[i] = arr[j];
  27.         arr[j] = temp; $ M# J) N/ n8 r4 W
  28.     }
  29.     : [' {+ q; u6 a3 W4 |  I1 O4 M
  30.     public static void main(String[] args) {
  31.         int[] arr = {9, 5, 1, 8, 3, 2, 7}; ( y" l- f* R9 Z
  32.         quickSort(arr, 0, arr.length - 1);   y) T% w( ~3 i3 s
  33.         System.out.println("排序后的数组:"); ( h5 t7 b, S( d$ |& ^0 d
  34.         for (int num : arr) {
  35.             System.out.print(num + " "); $ r6 G+ d2 K1 V0 i  ?( Q
  36.         }   F# C% B- f  {9 @1 G0 G
  37.     }
  38. } 3 |; t& J) S- z: q/ l5 o
复制代码
请注意,这只是快速排序算法的一种实现方式,您也可以使用其他方法来实现。
3 i6 O2 Y' ^% p+ ~! s2 g8 ]2 C9 A6 ~1 w9 b8 I
' F/ n+ V5 |2 u1 [4 [$ q
关注下面的标签,发现更多相似文章
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则