Bagaimana Melaksanakan QuickSort di Java?



Artikel ini akan memperkenalkan kepada anda satu lagi Algoritma Pembahagian Dan Penyortiran Penyelesaian yang QuickSort Di Jawa dan menindaklanjutinya dengan demonstrasi.

QuickSort adalah algoritma divide & winer. Dalam paradigma reka bentuk algoritma Divide & Conquer, kami membahagikan masalah dalam sub-masalah secara berulang dan kemudian menyelesaikan sub-masalah & akhirnya menggabungkan penyelesaian untuk mencari hasil akhir. Dalam artikel ini kita akan memfokuskan pada QuickSort In

Petunjuk berikut akan dibahas dalam artikel ini,





perbezaan antara xml dan html

Mari kita mulakan!

Satu perkara yang perlu diingat semasa membahagikan masalah menjadi sub-masalah adalah bahawa struktur sub-masalah tidak berubah seperti masalah asal.
Algoritma Divide & Conquer mempunyai 3 langkah:



  • Bahagikan: Memecahkan masalah menjadi subproblem
  • Conquer: Menyelesaikan masalah secara berulang-ulang
  • Gabungkan: Menggabungkan penyelesaian untuk mendapatkan hasil akhir

Imej- Jenis cepat di Java- Edureka

Terdapat pelbagai algoritma berdasarkan paradigma divide & winer. Jenis cepat & Penggabungan antara mereka.

Walaupun kerumitan masa terburuk QuickSort adalah O (n2) yang lebih daripada banyak algoritma penyortiran lain seperti Merge Sort dan Heap Sort, QuickSort lebih pantas dalam praktiknya, kerana loop dalamannya dapat dilaksanakan dengan cekap pada kebanyakan seni bina, dan pada kebanyakan data dunia nyata.



Mari kita bincangkan mengenai pelaksanaan algoritma Quick sort. Algoritma Quicksort mengambil elemen pangsi dan membahagi susunan di sekitar elotem pangsi. Terdapat sebilangan besar variasi Quicksot yang bergantung pada bagaimana anda memilih elemen pangsi. Terdapat pelbagai cara untuk memilih elemen pangsi:

  • Memilih elemen pertama
  • Pilih elemen terakhir
  • Memilih elemen rawak
  • Memilih elemen median

Perkara penting seterusnya yang perlu difahami ialah, partition () berfungsi dalam algoritma Urutan pantas. Fungsi partisi untuk mengambil elemen pangsi, meletakkannya pada kedudukan kanan, menggerakkan semua elemen lebih kecil daripada elemen pangsi ke kiri & semua elemen lebih besar ke kanannya. Quicksort memerlukan masa linear untuk melakukannya.
Kemudian susunan dibahagikan dalam dua bahagian dari elemen pangsi (iaitu unsur kurang daripada pangsi & elemen lebih besar daripada pangsi) & kedua-dua susunan disusun secara rekursif menggunakan algoritma Quicksort.

Sekarang kita memahami cara kerja algoritma QuickSort. Mari kita fahami bagaimana menerapkan algoritma Quicksort di Java.

Urut Pantas Fungsi:

/ * Fungsi Quicksort memerlukan susunan disusun dengan indeks terendah & tertinggi * /

pengosongan batal (int arr [], int lowIndex, int highIndex) {// Hingga lowIndex = highIndex jika (lowIndex

Sekarang mari kita lihat kod partition untuk memahami bagaimana ia berfungsi.

Partition Kod

Dalam kod partition, kita akan memilih elemen terakhir sebagai elemen pangsi. Kami melintasi susunan lengkap (iaitu menggunakan pemboleh ubah j dalam kes kami). Kami menjejaki elemen terkecil terakhir dalam array (iaitu menggunakan pemboleh ubah i dalam kes kami). Sekiranya kita menjumpai unsur yang lebih kecil daripada pangsi, kita mengalihkan elemen arus ganti a [j] dengan arr [i], jika tidak, kita terus melintasi.

int partition (int arr [], int lowIndex, int highIndex) {// Menjadikan elemen terakhir sebagai pivot int pivot = arr [highIndex] // Menggunakan i untuk mengesan elemen yang lebih kecil dari pivot int i = (lowIndex-1) untuk (int j = lowIndex j

Sekarang setelah anda memahami fungsi Quicksort & partition, mari kita melihat kod yang lengkap

Urut Pantas Kod Java

kelas QuickSort {// Partition Method int partition (int arr [], int lowIndex, int highIndex) {int pivot = arr [highIndex] int i = (lowIndex-1) untuk (int j = lowIndex j

// Kaedah Menyusun

pengosongan kosong (int arr [], int lowIndex, int highIndex) {if (lowIndex

// Kaedah untuk mencetak array

static void printArray (int arr []) {int n = arr.length untuk (int i = 0 i

// Kaedah Utama

perbezaan antara c c # dan c ++
utama kekosongan statik awam (String args []) {int arr [] = {101, 37, 68, 29, 11, 5} int n = arr.length QuickSort ob = new QuickSort () ob.sort (arr, 0, n-1) System.out.println ('sorted array') printArray (arr)}}

Pengeluaran:

Keluaran- Jenis cepat di Java- Edureka

Sekarang setelah menjalankan program Java di atas, Anda akan memahami bagaimana QuickSort berfungsi & bagaimana menerapkannya di Java.Oleh itu, kita telah mengakhiri artikel ini mengenai 'Quicksort in Java'. Sekiranya anda ingin mengetahui lebih lanjut,lihat oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai. Kursus latihan dan pensijilan Java J2EE dan SOA Edureka dirancang untuk melatih anda untuk konsep Java teras dan maju bersama dengan pelbagai kerangka kerja Java seperti Hibernate & Spring.

Ada soalan untuk kami? Sila sebutkan di bahagian komen blog ini dan kami akan menghubungi anda secepat mungkin.