回答

收藏

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

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

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

0 f2 N$ N8 ?( U: p9 w& F
  1. public class QuickSort {
  2.     / c$ E* ]& F+ ^7 z
  3.     public static void quickSort(int[] arr, int low, int high) {
  4.         if (low < high) { + a/ s* P" }2 F+ r# b7 F& J
  5.             int pivot = partition(arr, low, high); ' f9 E- M3 l8 l: I) k: r
  6.             quickSort(arr, low, pivot - 1);
  7.             quickSort(arr, pivot + 1, high);
  8.         }
  9.     } " j/ h3 |. K" ~9 F9 t; _+ h- @
  10.    
  11.     public static int partition(int[] arr, int low, int high) {
  12.         int pivot = arr[high];
  13.         int i = low - 1; 0 A; x" [  z% n; b$ a
  14.         for (int j = low; j < high; j++) { * b- z- k, F* ]. ], {
  15.             if (arr[j] < pivot) {
  16.                 i++; 2 O$ j9 j! k; J  }& P! P
  17.                 swap(arr, i, j);
  18.             }
  19.         } ' ~% W( `3 [. }% ?3 l( H7 H
  20.         swap(arr, i + 1, high); + b9 r: q8 E* g1 k! F& B7 d7 }; j
  21.         return i + 1; ' P) x# E  U2 H  l. P
  22.     }
  23.     $ J: _& `4 p  j
  24.     public static void swap(int[] arr, int i, int j) { " Z7 n7 [, a' }- w% o4 D
  25.         int temp = arr[i];
  26.         arr[i] = arr[j];
  27.         arr[j] = temp;
  28.     } - l. i$ L. [. R/ V; s: b% O
  29.     0 [8 _. w; V9 C& \- D
  30.     public static void main(String[] args) { $ V9 l, Z5 c0 e/ C
  31.         int[] arr = {9, 5, 1, 8, 3, 2, 7};
  32.         quickSort(arr, 0, arr.length - 1); 6 K4 j- i& K6 U/ d% F" u( ^
  33.         System.out.println("排序后的数组:"); 7 ~, q: U: D8 E+ d8 [
  34.         for (int num : arr) { 7 v! `+ Z/ G/ Y- Z* ]( {2 m
  35.             System.out.print(num + " ");
  36.         }
  37.     }
  38. }
复制代码
请注意,这只是快速排序算法的一种实现方式,您也可以使用其他方法来实现。" W0 C+ |* Y3 z4 J) T( a: b
' t: `+ D1 l3 d- b, M0 e: n  h
- U( K. z3 R) Z( G$ S6 r; s  x
关注下面的标签,发现更多相似文章
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则