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
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 (lowIndexLå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 jNu 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:
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.