Förstå tid och rymdkomplexitet av algoritmer hjälper till att utvärdera deras effektivitet. Sammanslagen sort och snabb sort är två populära sorteringsalgoritmer med olika prestandaegenskaper. Denna artikel förklarar hur man beräknar deras komplexiteter.
Sammanslagen Sort komplexitet
Sammanslagning sort delar upp matrisen i halvor upprepande tills varje underarray innehåller ett enda element. Sammanslagningsprocessen kombinerar sedan dessa underarrayer i sorterad ordning.
Tidskomplexiteten hos fusionssort är O(n log n)[]] i bästa, genomsnittliga och värsta fall eftersom den konsekvent delar upp arrayen och sammanfogar den effektivt.
Rymdkomplexitet är ]O(n)] på grund av behovet av tillfälliga arrayer under sammanslagningen.
Snabb Sort komplexitet
Snabbsort väljer ett pivot element och partitioner arrayen i subarrayer som är mindre än eller större än pivoten. Denna process upprepas upprepas upprepas upprepas upprepas upprepas upprepas.
Den genomsnittliga tidskomplexiteten är O(n log n)[]], men i värsta fall, till exempel när det minsta eller största elementet alltid väljs som pivoten, försämras det till ]O(n^2)].
Rymdkomplexitet för snabb sort är i allmänhet ]O(log n)[]] på grund av återkommande stack utrymme, men det kan vara högre beroende på genomförandet.
Sammanfattning av komplexiteter
- ]O(n log n)[], Space: ]]O(n)]]]
- ] []]]] ]], sämst O(n^2), Space: ]]]O(log n)]]]