Artikel ini menjelaskan algoritma penyortiran cepat yang diimplementasikan oleh Java berdasarkan metode Divisi dan Penaklukan. Bagikan untuk referensi Anda, sebagai berikut:
package cn.nwsuaf.quick;/** * Randomly generate 20 numbers and quickly sort them* * @author Liu Yonglang* */public class Quick { /** * Exchange function to implement the exchange operation of two numbers in the array* * @param array * Array to be operated* @param i * First subscript of the exchange array* @param j * Second subscript of the exchange array*/ public static void swap (int [] array, int i, int j) {int temp = array [i]; array [i] = array [j]; array [j] = temp; } /** * Division and conquer division algorithm* * @param array * Array to be operated* @param low * Start address of module in division* @param height * End address of module in division* @return Location subscript of reference element*/ public static int quick(int[] array, int low, int height) { // Set the first number as the reference element int pivot = array[low]; // Pindai dari kanan ke kiri untuk menemukan elemen pertama lebih kecil dari pivot sementara (rendah <tinggi) {while (Low <height && array [height]> = pivot) tinggi--; // menunjukkan bahwa elemen yang lebih kecil dari pivot ditemukan jika (rendah <tinggi) // setelah swap, rendah mengeksekusi swap operasi +1 (array, rendah ++, tinggi); // Pindai dari kiri ke kanan untuk menemukan elemen pertama lebih besar dari pivot sementara (rendah <tinggi && array [rendah] <= pivot) rendah ++; // menunjukkan bahwa elemen yang lebih besar dari pivot ditemukan jika (rendah <tinggi) // setelah swap, mengeksekusi -1 swap operasi (array, rendah, tinggi--); } // Kembali ke posisi akhir dari ketinggian pengembalian elemen referensi; } / ** * Jenis array cepat * * @param array * Array yang akan dioperasikan * @param rendah * rendah * @param tinggi * tinggi * / public static void sort (int [] array, int low, int tinggi) {// Catat posisi yang sesuai dengan elemen referensi yang dibagi int int temp; // urutkan hanya jika (rendah <tinggi) {// membagi array temp = cepat (array, rendah, tinggi); // urutkan secara rekursif untuk sortir interval kiri (array, rendah, temp - 1); // urutkan secara rekursif untuk sortir interval yang tepat (array, temp + 1, tinggi); }} public static void main (string [] args) {int [] array = new int [20]; System.out.println ("Hasil tes wulin.com:"); System.out.print ("Sebelum menyortir urutan:"); untuk (int i = 0; i <array.length; i ++) {// Secara acak menghasilkan 20 bilangan bulat 0-99 array [i] = (int) (math.random () * 100); System.out.print (array [i] + ""); } System.out.print ("/Nsorted Sequence:"); urutkan (array, 0, array.length - 1); untuk (int i = 0; i <array.length; i ++) system.out.print (array [i]+""); }}Hasil Menjalankan:
PS: Ini adalah alat demonstrasi untuk referensi Anda:
Demonstrasi Animasi Online Sisipkan/Pilih/Bubble/Gabungan/Hill/Algoritma Proses Algoritma Penyortiran Cepat:
http://tools.vevb.com/aideddesign/paixu_ys
Untuk informasi lebih lanjut tentang algoritma java, pembaca yang tertarik dengan situs ini dapat melihat topik: "struktur data java dan tutorial algoritma", "ringkasan tips node dom java", "ringkasan file operasi java dan direktori" dan "ringkasan tip operasi java cache" tips java "tips java" Tips "Java Cache Tips"
Saya harap artikel ini akan membantu pemrograman Java semua orang.