Hvordan implementere QuickSort i Java?



Denne artikkelen vil introdusere deg en annen sorteringsalgoritme for Divide And Conquer som er QuickSort i Java og følge den opp med en demonstrasjon.

QuickSort er en delings- og erobringsalgoritme. I Divide & Conquer algoritmedesignparadigme deler vi problemene i delproblemer rekursivt og løser underproblemene og kombinerer til slutt løsningene for å finne det endelige resultatet. I denne artikkelen vil vi fokusere på QuickSort In

Følgende tips vil bli dekket i denne artikkelen,





hvordan du bruker varsel i javascript

La oss begynne!

En ting å huske på når du deler problemene i delproblemer, er at strukturen til delproblemer ikke endres i forhold til det opprinnelige problemet.
Divide & Conquer-algoritmen har tre trinn:



  • Del: Del opp problemet i delproblemer
  • Conquer: Løs rekursivt delproblemene
  • Kombinere: Kombinere løsningene for å få det endelige resultatet

Bilde- Rask sortering i Java- Edureka

Det er forskjellige algoritmer basert på divide & conquer paradigm. Rask sortering og sammenslåing er blant dem.

Selv om QuickSort i verste fall er kompleksiteten O (n2), som er mer enn mange andre sorteringsalgoritmer som Merge Sort og Heap Sort, er QuickSort raskere i praksis, fordi den indre sløyfen kan implementeres effektivt på de fleste arkitekturer og i de fleste virkelige data.



La oss snakke om implementeringen av hurtig sorteringsalgoritme. Quicksort-algoritmer tar et pivotelement og partisjonerer arrayet rundt pivotelementet. Det er mange varianter av Quicksot, som avhenger av hvordan du velger dreieelementet. Det er flere måter å velge dreieelementet på:

  • Plukker det første elementet
  • Velg det siste elementet
  • Plukker et tilfeldig element
  • Plukker medianelement

Den neste viktige tingen å forstå er, partisjon () -funksjonen i hurtig sorteringsalgoritme. Partisjonsfunksjon for å ta et pivotelement, plasserer det i riktig posisjon, beveger alle elementene mindre enn pivotelementet til venstre og alle elementene større til høyre. Quicksort tar lineær tid å gjøre det.
Deretter er matrisen delt i to deler fra pivotelementet (dvs. elementer mindre enn pivot og elementer større enn pivot), og begge matriser sorteres rekursivt ved hjelp av Quicksort-algoritme.

Nå som vi forstår hvordan QuickSort-algoritmen fungerer. La oss forstå hvordan du implementerer Quicksort-algoritme i Java.

QuickSort Funksjon:

/ * Quicksort-funksjonen må matrisen sorteres med laveste og høyeste indeks * /

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

La oss nå se på partisjoneringskoden for å forstå hvordan den fungerer.

Skillevegg Kode

I partisjoneringskoden vil vi velge det siste elementet som pivotelementet. Vi krysser hele matrisen (dvs. bruker variabel j i vårt tilfelle). Vi holder rede på det siste minste elementet i matrisen (dvs. bruker variabel i i vårt tilfelle). Hvis vi finner noe element mindre enn pivoten, flytter vi bytte gjeldende element a [j] med arr [i], ellers fortsetter vi å krysse.

int partisjon (int arr [], int lowIndex, int highIndex) {// Gjør det siste elementet som pivot int pivot = arr [highIndex] // Bruker i for å holde oversikt over mindre elementer fra pivot int i = (lowIndex-1) for (int j = lowIndex j

Nå som du har forstått Quicksort & partisjonsfunksjon, la oss raskt se på hele koden

QuickSort Java-kode

klasse QuickSort {// Partisjonsmetode int partisjon (int arr [], int lowIndex, int highIndex) {int pivot = arr [highIndex] int i = (lowIndex-1) for (int j = lowIndex j

// Sorteringsmetode

sql server tutorials for nybegynnere
void sort (int arr [], int lowIndex, int highIndex) {if (lowIndex

// Metode for å skrive ut matrise

statisk tomrom printArray (int arr []) {int n = arrlengde for (int i = 0 i

// Hovedmetode

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 ('sorted array') printArray (arr)}}

Produksjon:

Utgang- Rask sortering i Java- Edureka

Nå etter å ha utført Java-programmet ovenfor, ville du ha forstått hvordan QuickSort fungerer og hvordan du implementerer det i Java.Dermed har vi kommet til en slutt på denne artikkelen om ‘Quicksort in Java’. Hvis du ønsker å lære mer,sjekk ut av Edureka, et pålitelig online læringsfirma. Edurekas Java J2EE- og SOA-opplærings- og sertifiseringskurs er designet for å trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet på denne bloggen, så kommer vi tilbake til deg så snart som mulig.