Quick Sort merupakan penyempurnaan dari bubble sort berdasarkan ide biner. Ide utamanya adalah untuk membuat basis, letakkan angka-angka yang lebih kecil dari basis di sebelah kiri basis, dan letakkan angka-angka yang lebih besar dari basis di sebelah kanan basis, dan kemudian urutkan lebih lanjut kedua bagian dari angka-angka tersebut untuk mencapai pengurutan array.
Keuntungannya adalah efisiensi tinggi, dan kompleksitas waktu rata-rata adalah O(nlogn). Seperti namanya, pengurutan cepat adalah algoritma pengurutan tercepat dan menghabiskan sedikit sumber daya dibagi rata setiap saat. Dalam kasus array, kodenya relatif sederhana.
Kerugiannya adalah tidak stabil. Ketika urutan awal diurutkan atau pada dasarnya diurutkan, kompleksitas waktu turun menjadi O(n^2).
Misalnya:
publicclassMain{//Metode penerapan baris cepat publicstaticvoidquickRow(int[]array,intlow,inthigh){inti,j,pivot;//Akhiri kondisi if(low>=high){return;}i=low;j=high;/ /Node yang dipilih, angka pertama dari array yang dipilih di sini digunakan sebagai node pivot=array[low]; while(i<j){//Cari angka yang lebih kecil dari node dari kanan ke kiri dari loop, apakah ditemukan atau i =j while(array[j]>=pivot&&i<j){j--;}//Cari angka yang lebih besar dari node dari kiri ke kanan , apakah ditemukan, atau i=j while(array[i]<=pivot&&i <j){i++;}//Jika instruksi i!=j ditemukan, tukarkan kedua angka if(i<j){inttemp=array [i];array[i]=array[j];array [j]=temp;}}//i==j Siklus berakhir, jumlah node pertukaran dan jumlah titik pertemuan array[low]=array [i];array[i]=pivot;//array "dibagi" "Dua bagian", lalu ulangi operasi di atas quickRow(array,low,i-1);quickRow(array,i+1,high);} publicstaticvoidmain(String[]args){int[]array={6,17, 38,59,2,10};intlow=0,high=array.length-1;quickRow(array,low,high);for( inti:array){System.out.println(i);}}}
Hasil yang berjalan adalah sebagai berikut:
2610173859