Kuinka toteuttaa QuickSort Java -ohjelmassa?



Tässä artikkelissa esitellään sinulle toinen Divide and Conquer Lajittelualgoritmi, joka on QuickSort In Java, ja seuraa sitä esittelyllä.

QuickSort on jakamis- ja valloitusalgoritmi. Divide & Conquer -algoritmisuunnitteluparadigmassa jaamme ongelmat alaongelmiin rekursiivisesti, sitten ratkaisemme alaongelmat ja viimeinkin yhdistämme ratkaisut lopullisen tuloksen löytämiseksi. Tässä artikkelissa keskitymme QuickSort In -ohjelmaan

Seuraavat vihjeet käsitellään tässä artikkelissa,





php: n asettaminen Windowsiin

Aloitetaanpa!

Yksi asia, joka on pidettävä mielessä jaettaessa ongelmat alaongelmiin, on se, että alaongelmien rakenne ei muutu alkuperäisestä ongelmasta.
Divide & Conquer -algoritmilla on 3 vaihetta:



  • Divide: ongelman jakaminen osahäiriöiksi
  • Valloitus: Aiheiden rekursiivinen ratkaisu
  • Yhdistä: Yhdistämällä ratkaisut lopullisen tuloksen saamiseksi

Kuva- Nopea lajittelu Java- Edurekassa

Divide & Conquer -paradigmaan perustuvia algoritmeja on useita. Nopea lajittelu ja yhdistäminen-lajittelu ovat niiden joukossa.

Vaikka QuickSortin huonoin tapa-ajan monimutkaisuus on O (n2), joka on enemmän kuin monet muut lajittelualgoritmit, kuten Yhdistä lajittelu ja Heap Sort, QuickSort on käytännössä nopeampi, koska sen sisäinen silmukka voidaan toteuttaa tehokkaasti useimmissa arkkitehtuureissa ja useimmissa reaalimaailman tiedot.



Puhutaan pikalajittelualgoritmin toteuttamisesta. Quicksort-algoritmit ottavat pivot-elementin ja jakavat matriisin pivot-elementin ympärille. Quicksotissa on useita muunnelmia, jotka riippuvat siitä, kuinka valitset pivot-elementin. Pivot-elementti voidaan valita useilla tavoilla:

  • Ensimmäisen elementin valitseminen
  • Valitse viimeinen elementti
  • Satunnaisen elementin valitseminen
  • Mediaanielementin valinta

Seuraava tärkeä asia, joka on ymmärrettävä, on partition () -toiminto Quick sort algoritmissa. Osiointitoiminto kääntöelementin ottamiseksi, sijoittaa sen oikeaan asentoon, siirtää kaikki kääntöelementtiä pienemmät elementit vasemmalle ja kaikki suuremmat oikealle. Quicksort vie lineaarista aikaa siihen.
Sitten taulukko jaetaan kahteen osaan pivot-elementistä (ts. Elementit, jotka ovat vähemmän kuin pivot & elementit, jotka ovat suurempia kuin pivot), ja molemmat matriisit lajitellaan rekursiivisesti Quicksort-algoritmilla.

Nyt kun ymmärrämme QuickSort-algoritmin toiminnan. Ymmärretään, miten Quicksort-algoritmi voidaan toteuttaa Java-sovelluksessa.

QuickSort Tehtävä:

/ * Quicksort-toiminto edellyttää, että taulukko on lajiteltu alimmalla ja suurimmalla indeksillä * /

void sort (int arr [], int lowIndex, int highIndex) {// Kunnes lowIndex = highIndex if (lowIndex

Katsokaamme nyt osiokoodia ymmärtämään, miten se toimii.

Osio Koodi

Valitaan osiokoodissa viimeinen elementti pivot-elementiksi. Käymme läpi koko matriisin (ts. Käytämme muuttujaa j tapauksessamme). Seuraamme taulukon viimeistä pienintä elementtiä (ts. Käytämme muuttujaa i tapauksessamme). Jos löydämme pienemmän elementin kuin kääntö, siirrämme vaihtamaan nykyisen elementin a [j] arr [i]: llä, muuten jatkamme kulkemista.

int-osio (int arr [], int lowIndex, int highIndex) {// Viimeisen elementin tekeminen kääntönä int pivot = arr [highIndex] // i: n avulla seurataan pienempiä elementtejä pivotista int i = (lowIndex-1) for (int j = matala-indeksi j

Nyt kun olet ymmärtänyt Quicksort & partition -toiminnon, katsokaamme nopeasti koko koodi

QuickSort Java-koodi

luokka QuickSort {// osiomenetelmä int osio (int arr [], int lowIndex, int highIndex) {int pivot = arr [highIndex] int i = (lowIndex-1) kohteelle (int j = lowIndex j

// Lajittelutapa

void sort (int arr [], int lowIndex, int highIndex) {if (lowIndex

// Menetelmä taulukon tulostamiseksi

staattinen void printArray (int arr []) {int n = arr.length for (int i = 0 i

// Päämenetelmä

c ++ matriisilajittelu
public static void main (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 ('lajiteltu taulukko') printArray (arr)}}

Tuotos:

Tulos- Nopea lajittelu Java- Edurekassa

Nyt kun olet suorittanut yllä olevan Java-ohjelman, olisit ymmärtänyt, kuinka QuickSort toimii ja miten se voidaan toteuttaa Java-sovelluksessa.Siksi olemme päässeet tämän Quicksort in Java -artikkelin loppuun. Jos haluat oppia lisää,tutustu Edureka, luotettava verkko-oppimisyritys. Edurekan Java J2EE- ja SOA-koulutus- ja sertifiointikurssit on suunniteltu kouluttamaan sekä ydin- että edistyneitä Java-konsepteja sekä erilaisia ​​Java-kehyksiä, kuten Hibernate & Spring.

Onko sinulla kysymys meille? Mainitse se tämän blogin kommenttiosassa ja otamme sinuun yhteyttä mahdollisimman pian.