Rumah >Java >javaTutorial >Strategi pengoptimuman untuk melaksanakan algoritma isihan pantas dalam Java
Tajuk: Contoh kaedah dan kod yang cekap untuk melaksanakan algoritma isihan pantas dalam Java
Pengenalan:
Isih cepat ialah algoritma pengisihan yang cekap berdasarkan idea bahagi dan takluk serta mempunyai prestasi yang lebih baik dalam keadaan biasa. Artikel ini akan memperkenalkan proses pelaksanaan algoritma isihan pantas secara terperinci melalui contoh kod Java, bersama-sama dengan petua pengoptimuman prestasi untuk meningkatkan kecekapannya.
1. Prinsip Algoritma:
Idea teras isihan cepat adalah untuk memilih elemen penanda aras dan membahagikan urutan untuk diisih kepada dua urutan melalui satu laluan pengisihan. dan unsur-unsur susulan yang lain adalah lebih kecil daripada unsur penanda aras Unsur-unsurnya lebih besar daripada unsur asas, dan kemudian kedua-dua urutan itu diisih secara rekursif. . situasi semasa operasi sebenar Pengisihan merosot kepada kerumitan masa O(n^2), dan elemen rujukan boleh dipilih secara rawak dan bukannya sentiasa memilih elemen pertama atau terakhir jujukan.
Optimumkan operasi pertukaran: Dalam kaedah partition, apabila menukar elemen, anda boleh terlebih dahulu menentukan sama ada elemen adalah sama untuk mengelakkan operasi pertukaran yang tidak perlu untuk meningkatkan prestasi.
public class QuickSort { public static void quickSort(int[] arr, int left, int right) { if (left < right) { int pivotIndex = partition(arr, left, right); quickSort(arr, left, pivotIndex - 1); quickSort(arr, pivotIndex + 1, right); } } private static int partition(int[] arr, int left, int right) { int pivot = arr[left]; int i = left + 1; int j = right; while (true) { while (i <= j && arr[i] < pivot) { i++; } while (i <= j && arr[j] > pivot) { j--; } if (i > j) { break; } swap(arr, i, j); } swap(arr, left, j); return j; } private static void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } }
Atas ialah kandungan terperinci Strategi pengoptimuman untuk melaksanakan algoritma isihan pantas dalam Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!