Analyse et comparaison des performances de Java Quick Sort
Quick Sort (Quick Sort) est un algorithme de tri basé sur la comparaison qui est largement utilisé dans le développement réel en raison de sa vitesse d'exécution rapide et de ses bonnes performances. Cet article effectuera une analyse des performances de l'algorithme de tri rapide en Java et le comparera avec d'autres algorithmes de tri courants.
public class QuickSort { public static void quickSort(int[] arr, int low, int high) { if (low < high) { int pivotIdx = partition(arr, low, high); quickSort(arr, low, pivotIdx - 1); quickSort(arr, pivotIdx + 1, high); } } private static int partition(int[] arr, int low, int high) { int pivot = arr[low]; int i = low + 1; int j = high; while (i <= j) { if (arr[i] <= pivot) { i++; } else if (arr[j] > pivot) { j--; } else { swap(arr, i, j); } } swap(arr, low, j); return j; } 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 = {5, 2, 9, 1, 3, 7}; quickSort(arr, 0, arr.length - 1); System.out.println(Arrays.toString(arr)); } }
System.nanoTime()
de Java pour calculer le temps d'exécution d'un algorithme : import java.util.Arrays; public class SortComparison { public static void main(String[] args) { int[] arr = generateArray(10000); long startTime = System.nanoTime(); bubbleSort(arr.clone()); long endTime = System.nanoTime(); System.out.println("Bubble Sort: " + (endTime - startTime) + " ns"); startTime = System.nanoTime(); insertionSort(arr.clone()); endTime = System.nanoTime(); System.out.println("Insertion Sort: " + (endTime - startTime) + " ns"); startTime = System.nanoTime(); selectionSort(arr.clone()); endTime = System.nanoTime(); System.out.println("Selection Sort: " + (endTime - startTime) + " ns"); startTime = System.nanoTime(); quickSort(arr.clone(), 0, arr.length - 1); endTime = System.nanoTime(); System.out.println("Quick Sort: " + (endTime - startTime) + " ns"); } private static int[] generateArray(int size) { int[] arr = new int[size]; for (int i = 0; i < size; i++) { arr[i] = (int)(Math.random() * size); } return arr; } private static void bubbleSort(int[] arr) { // 省略冒泡排序的具体实现 } private static void insertionSort(int[] arr) { // 省略插入排序的具体实现 } private static void selectionSort(int[] arr) { // 省略选择排序的具体实现 } private static void quickSort(int[] arr, int low, int high) { // 省略快速排序的具体实现 } }
En exécutant le code ci-dessus, nous pouvons obtenir le temps d'exécution de chaque algorithme de tri. Selon les résultats expérimentaux, l’algorithme de tri rapide est généralement plus rapide que le tri à bulles, le tri par insertion et le tri par sélection, en particulier pour trier des ensembles de données à grande échelle. Bien entendu, dans certains cas spécifiques, les performances d'autres algorithmes de tri peuvent être meilleures, c'est pourquoi une analyse spécifique de problèmes spécifiques est effectuée et l'algorithme de tri le plus approprié est sélectionné en fonction de la situation réelle.
Résumé :
Cet article effectue une analyse des performances de l'algorithme de tri rapide en Java et le compare à d'autres algorithmes de tri courants. Grâce à des résultats expérimentaux, nous pouvons conclure que le tri rapide est généralement un algorithme de tri efficace, particulièrement adapté au tri d’ensembles de données à grande échelle. Cependant, pour des problèmes spécifiques, nous devons choisir l’algorithme de tri le plus approprié en fonction de la situation réelle.
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!