Hur implementerar jag QuickSort i Java?



Den här artikeln presenterar dig ytterligare en sorteringsalgoritm för Divide And Conquer som är QuickSort i Java och följ upp den med en demonstration.

QuickSort är en delnings- och erövringsalgoritm. I Divide & Conquer algoritmdesignparadigm delar vi upp problemen i delproblem rekursivt och löser sedan delproblemen och kombinerar äntligen lösningarna för att hitta det slutliga resultatet. I den här artikeln kommer vi att fokusera på QuickSort In

Följande tips kommer att behandlas i den här artikeln,





c ++ sorteringsarrayer

Låt oss börja!

En sak att tänka på när man delar upp problemen i delproblem är att strukturen för delproblemen inte förändras i förhållande till det ursprungliga problemet.
Divide & Conquer-algoritmen har tre steg:



  • Dela: Dela upp problemet i delproblem
  • Erövra: Lösa underproblemen rekursivt
  • Kombinera: Kombinera lösningarna för att få det slutliga resultatet

Bild- Snabb sortering i Java- Edureka

Det finns olika algoritmer baserade på dela & erövra paradigm. Snabbsortering och sammanfogning är bland dem.

Även om QuickSorts värsta fallkomplexitet är O (n2), vilket är mer än många andra sorteringsalgoritmer som Merge Sort och Heap Sort, är QuickSort snabbare i praktiken, eftersom dess inre slinga kan implementeras effektivt på de flesta arkitekturer och i de flesta fall verkliga data.



Låt oss prata om implementeringen av Quick sort algoritm. Snabbsortalgoritmer tar ett pivotelement och partitionerar arrayen runt pivotelementet. Det finns flera varianter av Quicksot som beror på hur du väljer pivotelementet. Det finns flera sätt att välja pivotelement:

  • Välj det första elementet
  • Välj det sista elementet
  • Välj ett slumpmässigt element
  • Plocka medianelement

Nästa viktiga sak att förstå är, partition () -funktionen i snabbsorteringsalgoritmen. Partitioneringsfunktion för att ta ett pivotelement, placerar det i rätt position, flyttar alla element som är mindre än pivotelementet till vänster & alla element större till höger. Quicksort tar linjär tid att göra det.
Därefter är matrisen uppdelad i två delar från pivotelementet (dvs. element mindre än pivot & element större än pivot) och båda matriserna sorteras rekursivt med Quicksort-algoritmen.

Nu när vi förstår hur QuickSort-algoritmen fungerar. Låt oss förstå hur man implementerar Quicksort-algoritmen i Java.

vad är sammanhangsfilter i tablå

QuickSort Fungera:

/ * Quicksort-funktionen behöver matrisen sorteras med det lägsta och högsta indexet * /

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

Låt oss nu titta på partitioneringskoden för att förstå hur den fungerar.

Dela Koda

I partitioneringskoden väljer vi det sista elementet som ledelement. Vi går igenom hela matrisen (dvs. använder variabel j i vårt fall). Vi håller reda på det sista minsta elementet i matrisen (dvs. använder variabel i i vårt fall). Om vi ​​hittar något element som är mindre än pivoten flyttar vi växelströmselementet a [j] med arr [i], annars fortsätter vi att korsa.

int partition (int arr [], int lowIndex, int highIndex) {// Gör det sista elementet som pivot int pivot = arr [highIndex] // Använd i för att hålla reda på mindre element från pivot int i = (lowIndex-1) för (int j = lowIndex j

Nu när du har förstått Quicksort & partition funktion, låt oss snabbt titta på hela koden

QuickSort Java-kod

klass QuickSort {// Partition Method int partition (int arr [], int lowIndex, int highIndex) {int pivot = arr [highIndex] int i = (lowIndex-1) for (int j = lowIndex j

// Sorteringsmetod

public string tostring ()
void sort (int arr [], int lowIndex, int highIndex) {if (lowIndex

// Metod för att skriva ut array

statisk ogiltig utskriftArray (int arr []) {int n = arrlängd för (int i = 0 i

// Huvudmetod

public static void main (String args []) {int arr [] = {101, 37, 68, 29, 11, 5} int n = arrlength QuickSort ob = new QuickSort () ob.sort (arr, 0, n-1) System.out.println ('sorted array') printArray (arr)}}

Produktion:

Output- Snabb sortering i Java- Edureka

Efter att ha kört ovanstående Java-program skulle du ha förstått hur QuickSort fungerar och hur man implementerar det i Java.Således har vi kommit till slutet av den här artikeln om ”Quicksort in Java”. Om du vill lära dig mer,kolla in av Edureka, ett pålitligt online-lärande företag. Edurekas Java J2EE- och SOA-utbildning och certifieringskurs är utformad för att träna dig för både grundläggande och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Spring.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen på den här bloggen så kommer vi tillbaka till dig så snart som möjligt.