Hjem Personlig finansiering Hvordan fungerer Quicksort-teknikken i Java? - dummies

Hvordan fungerer Quicksort-teknikken i Java? - dummies

Video: Week 4 2024

Video: Week 4 2024
Anonim

Her finner du ut hvordan en av de mest brukte sorteringsteknikkene i Java faktisk fungerer. Denne teknikken kalles Quicksort, , og det er en veldig genial bruk av rekursjon.

For de fleste av oss, finne ut hvordan sorteringsalgoritmer som Quicksort-arbeid bare er en intellektuell øvelse. Java API-en har allerede innebygd sortering.

Quicksort-teknikken sorterer en rekke verdier ved å bruke rekursjon. Dens grunnleggende trinn er således:

  1. Velg en vilkårlig verdi som ligger innenfor rekkevidden av verdier i gruppen.

    Denne verdien er pivotpunktet . Den vanligste måten å velge pivotpunktet på er å velge den første verdien i matrisen. Folk har skrevet doktorgrad på mer sofistikerte måter å velge et pivotpunkt som resulterer i raskere sortering. Hold deg til med det første elementet i matrisen.

  2. Omarrangere verdiene i arrayet slik at alle verdiene som er mindre enn svingpunktet er på venstre side av arrayet og alle verdiene som er større enn eller lik vridpunktet, er på høyre side av array.

    Pivotverdien angir grensen mellom venstre og høyre side av arrayet. Det vil nok ikke være døds sentrum, men det spiller ingen rolle. Dette trinnet kalles partisjonering, og venstre og høyre side av arrays er partisjoner. Behandle hver av de to delene av arrayet som et separat array, og start over med trinn 1 for den delen.

  3. Det er den rekursive delen av algoritmen.

    Den vanskeligste delen av Quicksort-algoritmen er partisjoneringstrinnet, som må omorganisere partisjonen slik at alle verdier som er mindre enn svingpunktet er til venstre og alle elementene som er større enn svingpunktet punktet er til høyre. Anta at arrayet har disse ti verdiene:

38 17 58 22 69 31 88 28 86 12

Her er pivotpunktet 38, og oppgave av partisjoneringstrinnet er å omorganisere arrayen til noe slikt: < 17 12 22 28 31 38 88 69 86 58

Legg merke til at verdiene fortsatt ikke er i orden. Arrayet er imidlertid delt mellom verdien 38: Alle verdier som er mindre enn 38 er til venstre for 38, og alle verdier som er større enn 38 er til høyre for 38.

Nå kan du dele opp array inn i to partisjoner til verdien 38 og gjenta prosessen for hver side. Pivotverdien i seg selv går med venstre partisjon, så venstre partisjon er dette:

17 12 22 28 31 38

Denne partisjonen tar partisjonstrinnet 17 som svingpunkt og omorganiserer elementene som følger: > 12 17 22 28 31 38

Som du kan se, er denne delen av arrayet sortert nå.Dessverre innser Quicksort ikke at på dette tidspunktet, så tar det noen få rekursjoner for å være sikker. Men det er den grunnleggende prosessen.
Hvordan fungerer Quicksort-teknikken i Java? - dummies

Redaktørens valg

Vanlige visuelle studio-tastaturgenveier - dummier

Vanlige visuelle studio-tastaturgenveier - dummier

Du kan få tilgang til mange av funksjonene du bruker i Visual Studio til Lag en Silverlight-applikasjon gjennom tastaturgenveier. Her er de vanlige snarveiene som hjelper deg med å utføre oppgaver raskt i Visual Studio. Tastatur snarvei Handling Ctrl + Alt + F1 Åpne Visual Studio Documentation Ctrl + Shift + B Bygg programmet Ctrl + F5 Kjør prosjektet Ctrl + Alt + X Åpne verktøykassen hvis ...

Velg riktig format for e-postmarkedsføringsmeldingen din - dummies

Velg riktig format for e-postmarkedsføringsmeldingen din - dummies

Som Du komponerer markedsførings-e-postene dine, husk at formatet på e-posten din visuelt kommuniserer hovedideen til innholdet før publikum selv begynner å lese det. Forbrukerne forventer at formatet på e-posten din samsvarer med informasjonen den inneholder, slik at bruk av riktig format bidrar til å bygge publikums tillit. Velg ...

Kombinere flere samtaler til handling i din markedsføring e-post - dummies

Kombinere flere samtaler til handling i din markedsføring e-post - dummies

Din e-postmarkedsføringslisten består sannsynligvis av prospekter og kunder i ulike stadier av kjøpesyklusen med litt forskjellige interesser, så en del av publikum vil aldri være klar til å reagere umiddelbart på hver handling. Selv om alle på din e-postliste er klare til handling, er dine anrop til handling ...

Redaktørens valg

Opprett en Pivot-tabell YTD-totalvisning for Excel-rapporten - dummies

Opprett en Pivot-tabell YTD-totalvisning for Excel-rapporten - dummies

En nyttig rapportvisning I et Excel-pivottabell er YTD-totalsvisningen. Noen ganger er det nyttig å fange et løp-total-visning for å analysere bevegelsen av tall på en årlig basis (YTD) basis. Denne figuren illustrerer et pivottabell som viser en løpende total omsetning per måned for hvert år. I denne visningen er du ...

Opprett en pivottabel ved hjelp av Excels interne datamodell - dummies

Opprett en pivottabel ved hjelp av Excels interne datamodell - dummies

I enkelte tilfeller vil du kanskje opprett et pivottabell fra grunnen ved hjelp av Excels eksisterende interne datamodell som kildedata. Her er trinnene for å gjøre det: Velg Sett inn → PivotTable fra båndet. Dialogboksen Create PivotTable åpnes. Velg alternativet Bruk en ekstern datakilde, som vist, og klikk deretter på ...

Hvordan lage en standard snikker i Power Pivot - dummies

Hvordan lage en standard snikker i Power Pivot - dummies

Slicers tilbyr et brukervennlig grensesnitt med som du kan filtrere en Power Pivot pivottabell. Det er på tide å lage din første slicer. Bare følg disse trinnene:

Redaktørens valg

Alarmhendelsen i GameMaker: Studio-dummies

Alarmhendelsen i GameMaker: Studio-dummies

Alarmer er utmerket for når du vil ha tid Handlinger i din spill i GameMaker: Studio. For eksempel, hvis du vil at spilleren bare skal skyte kuler en gang hvert annet sekund, kan du sette en alarm for det. Hvis du vil når nye fiendtlige fly vises, kan du sette en alarm for det ...

Flytt retningsaktive handlinger i GameMaker: Studio - dummies

Flytt retningsaktive handlinger i GameMaker: Studio - dummies

I GameMaker: Studio, Flytt-fanen er den første kategorien i vinduet Objektegenskaper. Her er en liste over hver av handlingene du kan tilordne objektene. I følgende definisjoner brukes begrepet Instance for å referere til hva handlingen påvirker. Men du konfigurerer handlingen i objektet ...

Andre hendelser i GameMaker: Studio - dummies

Andre hendelser i GameMaker: Studio - dummies

I GameMaker: Studio, Andre hendelser er de som ikke anses verdige av sitt eget sted på menyen Event. Disse andre hendelsene kan være ganske kjempebra. Menyelementene er ganske mye selvforklarende, så det er ikke nødvendig med detaljer her. For fullstendige beskrivelser av hver av disse elementene, kan du alltid trykke F1 i GameMaker og ...