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
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 (lowIndexLa 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 jNå 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 nybegynnerevoid 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:
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.