Isih cepat dalam java, juga dikenali sebagai isihan partition-exchange, ialah algoritma isihan bahagi dan takluk. Isih pantas ialah contoh algoritma yang baik yang paling baik menggunakan cache CPU kerana sifat pembahagian dan penaklukannya. Algoritma Quicksort ialah salah satu algoritma pengisihan yang paling banyak digunakan, terutamanya untuk mengisih senarai besar, dan kebanyakan bahasa pengaturcaraan telah melaksanakannya. Algoritma Quicksort membahagikan data asal kepada dua bahagian: diisih secara individu dan kemudian digabungkan untuk menghasilkan data yang diisih.
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Mari kita pertimbangkan bahawa tatasusunan {8, 6, 3, 4, 9, 2, 1, 7} perlu diisih menggunakan Isih Pantas.
1. Pilih elemen yang dipanggil pangsi daripada tatasusunan. Secara amnya, elemen tengah dipilih sebagai pangsi. Mari kita ambil 4 sebagai pangsi.
2. Susun semula tatasusunan kepada dua bahagian supaya elemen yang kurang daripada pangsi datang sebelum pangsi dan elemen yang lebih besar daripada pangsi muncul selepas pangsi. Langkah-langkah berikut diikuti:
3. Gunakan langkah 1 dan 2 secara rekursif untuk sub-array kiri (tatasusunan dengan elemen kurang daripada pangsi) dan untuk sub-array kanan (tatasusunan dengan elemen lebih daripada pangsi). Jika tatasusunan mengandungi hanya satu atau sifar elemen, maka tatasusunan itu dianggap pelbagai.
Berikut ialah program java untuk mengisih tatasusunan integer menggunakan algoritma isihan pantas.
Kod:
import java.lang.*; import java.util.*; public class Main { private int array[]; private int length; public void sort(int[] inputArrayArr) { if (inputArrayArr == null || inputArrayArr.length == 0) { return; } this.array = inputArrayArr; length = inputArrayArr.length; performQuickSort(0, length - 1); } private void performQuickSort(int lowerIndex, int higherIndex) { int i = lowerIndex; int j = higherIndex; // calculate pivot number // middle element taken as pivot int pivot = array[lowerIndex+(higherIndex-lowerIndex)/2]; // Divide into two subarrays while (i <= j) { /** * In each iteration, find an element from left side of the pivot which * is greater than the pivot value, and also find an element * From right side of the pivot which is less than the pivot value. Once the search * is complete, we exchange both elements. */ while (array[i] < pivot) { i++; } while (array[j] > pivot) { j--; } if (i <= j) { swapNumbers(i, j); //move index to next position on both sides i++; j--; } } // call performQuickSort() method recursively if (lowerIndex < j) performQuickSort(lowerIndex, j); if (i < higherIndex) performQuickSort(i, higherIndex); } private void swapNumbers(int i, int j) { int temp = array[i]; array[i] = array[j]; array[j] = temp; } public static void main(String args[]){ Main quickSort = new Main(); int[] inputArray = {8,6,3,4,9,2,1,7}; quickSort.sort(inputArray); System.out.println("Sorted Array " + Arrays.toString(inputArray)); } }
Output:
Berikut ialah kelebihan algoritma isihan pantas:
Quicksort ialah algoritma pantas dan rekursif ekor yang berfungsi mengikut prinsip bahagi dan takluk. Berikut ialah analisis kerumitannya dalam Kes Terbaik, Purata dan Terburuk:
Di Jawa, Arrays. Kaedah Isih () menggunakan algoritma isihan pantas untuk mengisih tatasusunan.
Atas ialah kandungan terperinci Algoritma Pengisihan Pantas di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!