Explication détaillée du principe et de la mise en œuvre de Java Quick Sort
Quick Sort est un algorithme de tri couramment utilisé. Sa mise en œuvre est simple et efficace, et c'est l'un des algorithmes récursifs classiques. Cet article présentera en détail le principe et la mise en œuvre du tri rapide et fournira des exemples de code Java spécifiques.
Les étapes générales du tri rapide sont les suivantes :
(1) Sélectionnez un élément de référence et divisez la séquence en deux parties, afin que les éléments de gauche soient inférieurs ou égaux au repère, et les éléments de right sont tous deux supérieurs ou égaux à la référence ;
(2) Associez récursivement les éléments gauche et droit Triez rapidement les deux parties.
public class QuickSort { public static void quickSort(int[] arr, int low, int high) { if (low < high) { int partitionIndex = partition(arr, low, high); quickSort(arr, low, partitionIndex - 1); quickSort(arr, partitionIndex + 1, high); } } private static int partition(int[] arr, int low, int high) { int pivot = arr[high]; int i = low - 1; for (int j = low; j < high; j++) { if (arr[j] < pivot) { i++; swap(arr, i, j); } } swap(arr, i + 1, high); return i + 1; } private static void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } public static void main(String[] args) { int[] arr = {9, 2, 4, 7, 1, 5, 3, 8, 6}; System.out.println("Before sorting:"); for (int num : arr) { System.out.print(num + " "); } quickSort(arr, 0, arr.length - 1); System.out.println(" After sorting:"); for (int num : arr) { System.out.print(num + " "); } } }
Dans le code ci-dessus, nous définissons une méthode statique quickSort
, qui accepte un tableau d'entiers, en commençant et l'index de fin comme paramètres. Dans la méthode quickSort
, déterminez d'abord si l'index de départ est plus petit que l'index de fin. Si la condition est remplie, l'élément de base est sélectionné et partitionné via la méthode partition
. Dans la méthode partition
, nous utilisons le dernier élément comme élément de base, parcourons les éléments entre l'index de début et l'index de fin et échangeons des éléments plus petits que l'élément de base avec des éléments plus grands que l'élément de base. Enfin, remplacez l'élément de base dans sa position finale et remettez cette position. quickSort
,它接受一个整型数组、起始和结束索引作为参数。quickSort
方法中,首先判断起始索引是否小于结束索引,如果满足条件,则选取基准元素,并通过partition
方法进行分区操作。partition
方法中,我们以最后一个元素作为基准元素,遍历起始索引到结束索引之间的元素,将小于基准元素的元素与大于基准元素的元素进行交换。最后,交换基准元素到最终位置,返回该位置。
在main
方法中,我们创建一个整型数组并初始化。然后,调用quickSort
main
, nous créons un tableau d'entiers et l'initialisons. Ensuite, appelez la méthode quickSort
pour trier le tableau et afficher les résultats avant et après le tri.
Résumé :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!