Hem Personliga finanser Hur fungerar Quicksort-tekniken i Java? - dummies

Hur fungerar Quicksort-tekniken i Java? - dummies

Video: Week 4 2024

Video: Week 4 2024
Anonim

Här kan du se hur en av de vanligaste sorteringsteknikerna i Java faktiskt fungerar. Denna teknik heter Quicksort, och det är en mycket genial användning av rekursion.

För de flesta av oss kan vi ta reda på hur sorteringsalgoritmer som Quicksort-arbete bara är en intellektuell övning. Java API har sortering som redan är inbyggd.

Quicksort-tekniken sorterar en mängd värden genom att använda recursion. Dess grundläggande steg är således:

  1. Välj ett godtyckligt värde som ligger inom intervallet av värden i arrayen.

    Detta värde är pivotpunkten . Det vanligaste sättet att välja pivotpunkten är att helt enkelt välja det första värdet i matrisen. Folk har skrivit doktorsexamen på mer sofistikerade sätt att välja en pivotpunkt som leder till snabbare sortering. Stick med att använda det första elementet i matrisen.

  2. Omordna värdena i matrisen så att alla värden som är mindre än svängpunkten ligger på vänstra sidan av matrisen och alla värden som är större än eller lika med svängpunkten ligger på höger sida av array.

    Pivotvärdet anger gränsen mellan vänster och höger sida av matrisen. Det är nog inte dödscentrum, men det spelar ingen roll. Detta steg heter partitionering, och vänster och höger sida av arraysna är partitioner. Behandla nu var och en av de två sektionerna i arrayen som en separat grupp och börja över med steg 1 för den sektionen.

  3. Det är den rekursiva delen av algoritmen.

    Den svåraste delen av Quicksort-algoritmen är partitioneringssteget, som måste omorganisera partitionen så att alla värden som är mindre än svängpunkten är till vänster och alla element som är större än svängpunkten punkten är till höger. Antag att matrisen har dessa tio värden:

38 17 58 22 69 31 88 28 86 12

Här är pivotpunkten 38 och uppgiften för partitioneringssteget är att omordna arrayen till något sådant: < 17 12 22 28 31 38 88 69 86 58

Observera att värdena fortfarande är i ordning. Arrayet har emellertid delats runt värdet 38: Alla värden som är mindre än 38 är till vänster om 38 och alla värden som är större än 38 är till höger om 38.

Nu kan du dela upp array in i två partitioner vid värdet 38 och upprepa processen för varje sida. Pivotvärdet själv går med vänstra partitionen, så den vänstra partitionen är så här:

17 12 22 28 31 38

Den här gången väljer uppdelningssteget 17 som svängpunkt och omarrangerar elementen enligt följande: > 12 17 22 28 31 38

Som du kan se är denna del av arrayen sorterad nu.Tyvärr inser Quicksort inte att vid denna tidpunkt så tar det några fler rekursioner för att vara säker. Men det är grundprocessen.
Hur fungerar Quicksort-tekniken i Java? - dummies

Redaktörens val

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

Organisera e-postmarknadsföring innehåll för att matcha dina mål - dummies

När du utvecklar e-postmarknadsföring innehåll, överväga hur din publik kommer att uppleva dina avsikter. E-postmeddelanden ger större mening åt dina framtidsutsikter och kunder när innehållet du skapar och levererar är knutet samman under kända teman. När din tid är begränsad kan du bli frestad att skapa e-postinnehåll som passar ditt schema bättre ...

Nya formulärinmatningstyper i HTML5 - dummies

Nya formulärinmatningstyper i HTML5 - dummies

HTML-formulär är centrerade kring det ödmjuka men flexibla inmatningselementet . HTML5 lägger till ett antal väldigt användbara former av inmatning som hjälper till att göra HTML till ett mer modernt användargränssnitt. Även om stöd för dessa taggar inte är universellt är det säkert att börja använda dem nu. Varje webbläsare (även IE6) som inte förstår den avancerade ...

Utföra visuell designtest på en ny webbplats - dummies

Utföra visuell designtest på en ny webbplats - dummies

Det visuella designteamet för en webbplats kan skapa några olika "look and feel" -alternativ och testa dem med användare. Den här designen kallas perfekt för att passera en hemsida och en inre eller undersida av din webbplats, men de är inte 100 procent korrekta när det gäller ...

Redaktörens val

Objektiv till dina digitala SLR-dummies

Objektiv till dina digitala SLR-dummies

Zoomlinser är inte den enda typen av linser som är tillgängliga för din dSLR . Du borde veta hur de skiljer sig från de andra alternativen. Här är några av alternativen till zoomlinser i allmänhet och vanliga zoomlinser i synnerhet. Prime-objektiv En primärlins har en fast brännvidd. En lins med fast fokusering ...

Hur man skapar bra belysning för din digitala fotografi - dummies

Hur man skapar bra belysning för din digitala fotografi - dummies

Ja, du kan återskapa bra belysning om du vet vad du gör. Och ingenting kan förstöra ett foto snabbare än dålig belysning. Du kan göra många förbättringar till ett utmanande ämne helt enkelt genom att använda bra belysningsteknik. Din farbrors skalliga huvud, en tonåring som är mindre än perfekt, en hård upplyst strandplats, en droppe ...

ÖKa bildförstoring med telekonverterare - dummies

ÖKa bildförstoring med telekonverterare - dummies

En telekonverter är en sekundärlins som du placerar mellan din lins och kamerokroppen (precis som förlängningsröret). En telekonverter tar emot bilden som skapats av din lins och ger en förstorad version av den till kamerans digitala sensor. Detta kan vara ett användbart verktyg i makrofotografering men kan också vara ...

Redaktörens val

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Undvik hack på sårbara trådlösa arbetsstationer - dummies

Trådlösa arbetsstationer har massor av säkerhetsproblem och kan vara inriktade på hackar - från svaga lösenord till opatchade säkerhetshål till lagring av WEP- och WPA-krypteringsnycklar lokalt. De flesta av de kända trådlösa klientens sårbarheter har blivit patchade av sina respektive leverantörer, men du vet aldrig om alla dina trådlösa system är ...

Grundläggande Mac Network Settings - dummies

Grundläggande Mac Network Settings - dummies

De flesta nätverksinställningarna på en Mac är automatiska. Om du föredrar kan du titta på och ändra standardnätverksinställningarna genom att följa dessa steg: