Kako implementirati QuickSort u Javi?



Ovaj će vam članak predstaviti još jedan algoritam za sortiranje podijeli i osvoji, koji je QuickSort u Javi, i slijedite ga demonstracijom.

QuickSort je algoritam podijeli i osvoji. U paradigmi dizajna algoritma Divide & Conquer, probleme u pod-probleme dijelimo rekurzivno, zatim rješavamo pod-probleme i napokon kombiniramo rješenja kako bismo pronašli konačni rezultat. U ovom ćemo se članku usredotočiti na QuickSort In

U ovom će članku biti obrađeni sljedeći smjerovi,





tablica koja kombinira dva izvora podataka

Započnimo!

Prilikom podjele problema na podprobleme imajte na umu da se struktura podproblema ne mijenja kao izvorni problem.
Algoritam Divide & Conquer ima 3 koraka:



  • Podjela: Razbijanje problema na podprobleme
  • Osvojiti: Rekurzivno rješavanje potproblema
  • Kombiniraj: kombinirajući rješenja da biste dobili konačni rezultat

Slika - Brzo sortiranje u Javi - Edureka

Postoje razni algoritmi koji se temelje na paradigmi podijeli i osvoji. Brzo sortiranje i spajanje su među njima.

Iako je najgora vremenska složenost QuickSorta O (n2), što je više od mnogih drugih algoritama za sortiranje poput Merge Sort i Heap Sort, QuickSort je u praksi brži, jer se njegova unutarnja petlja može učinkovito implementirati na većinu arhitektura podaci iz stvarnog svijeta.



Razgovarajmo o implementaciji algoritma za brzo sortiranje. Quicksort algoritmi uzimaju zaokretni element i dijele niz oko zaokretnog elementa. Postoji nekoliko varijacija Quicksota što ovisi o načinu na koji odaberete pivot element. Postoji više načina za odabir osovinskog elementa:

ansible vs chef vs puppet
  • Odabir prvog elementa
  • Odaberite zadnji element
  • Odabir slučajnog elementa
  • Branje medijana elementa

Sljedeća važna stvar koju treba razumjeti je funkcija particije () u algoritmu brzog sortiranja. Funkcija particije za uzimanje pivot elementa, postavlja ga u desni položaj, pomiče sve elemente manje od pivot elementa ulijevo i sve elemente veće udesno. Quicksort-u treba linearno vrijeme da to učini.
Tada se niz dijeli od dva elementa od pivot elementa u dva dijela (tj. Elementi manji od pivota i elementi veći od pivota) i oba se polja rekurzivno sortiraju pomoću Quicksort algoritma.

Sad kad razumijemo rad algoritma QuickSort. Razumijemo kako implementirati Quicksort algoritam u Javi.

Brzo sortiranje Funkcija:

/ * Quicksort funkcija treba da se niz sortira s najnižim i najvišim indeksom * /

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

Pogledajmo sada particijski kôd da bismo razumjeli kako to radi.

Pregrada Kodirati

U particijskom kodu odabrat ćemo posljednji element kao stožerni element. Prelazimo čitav niz (tj. Koristeći u našem slučaju varijablu j). Pratimo posljednji najmanji element u nizu (tj. Koristeći varijablu i u našem slučaju). Ako nađemo bilo koji element manji od pivota, trenutni element a [j] premjestimo s arr [i], u suprotnom nastavljamo prelaziti.

int particija (int arr [], int lowIndex, int highIndex) {// Izrada posljednjeg elementa kao stožera int pivot = arr [highIndex] // Korištenje i za praćenje manjih elemenata iz pivot int i = (lowIndex-1) za (int j = lowIndex j

Sad kad ste razumjeli funkciju Quicksort & partition, brzo ćemo pogledati kompletan kod

Brzo sortiranje Java kod

klasa QuickSort {// Metoda particije int particija (int arr [], int lowIndex, int highIndex) {int pivot = arr [highIndex] int i = (lowIndex-1) za (int j = lowIndex j

// Metoda sortiranja

kako dodati java na put
sortiranje praznina (int arr [], int lowIndex, int highIndex) {if (lowIndex

// Metoda za ispis niza

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

// Glavna metoda

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 ('sortirani niz') printArray (arr)}}

Izlaz:

Izlaz - Brzo sortiranje u Javi- Edureka

Nakon izvršavanja gornjeg Java programa shvatili biste kako QuickSort radi i kako ga implementirati u Javi.Tako smo došli do kraja ovog članka o 'Quicksort u Javi'. Ako želite naučiti više,provjerite Edureka, pouzdane tvrtke za internetsko učenje. Edurekin tečaj za obuku i certificiranje Java J2EE i SOA osmišljen je kako bi vas osposobio za osnovne i napredne Java koncepte zajedno s raznim Java okvirima poput Hibernate & Spring.

Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga i javit ćemo vam se što je prije moguće.