Video: HUR ANVÄNDER MAN?! 2024
En av de vanligaste sorteringsteknikerna i Java kallas Quicksort-tekniken. Det är ett bra sätt att hantera rekursion. Den faktiska koden som kör en Quicksort-rutin är förvånansvärt enkel:
Statisk statisk tomgång (int låg, int hög) {if (low> = high) return; int p = partition (låg, hög); sortera (låg, p); sortera (p + 1, hög);}
Denna metod sorterar den del av en array som indikeras av de låga och höga indexvärdena som överförts till den. Ignorera if-förklaringen för nu fungerar sorteringsmetoden genom att ringa en partitionsmetod. Denna metod omarrangerar arrayen i två partitioner så att alla värden i den vänstra partitionen är mindre än alla värden i den högra partitionen.
Partitionsmetoden returnerar indexet för slutet på den vänstra partitionen. Då kallar sorteringsmetoden sig två gånger: en gång för att sortera den vänstra partitionen och igen för att sortera rätt partition.
För att få sorteringsmetoden startad kallar du den med 0 som det låga värdet och arraylängden och 1 som högvärdet. Således börjar sorteringsmetoden genom att sortera hela matrisen. Varje gång sorteringsmetoden exekveras kallas det två gånger för att sortera mindre partitioner i arrayen.
Om uttalandet i början av sortmetoden jämför det låga värdet med högt värde. Om det låga värdet är lika med eller högre än det höga värdet, har partitionen bara ett element (eller kanske inga element) och är därför redan sorterat. I så fall returnerar sorteringsmetoden helt enkelt utan att kalla sig igen. Det är det tillstånd som slutar rekursionen.