A gyors rendezés egy nagyon hatékony rendezési algoritmus, amely az adatok tömbjének particionálásán alapul kisebb tömbökbe. Egy nagy tömböt két tömbre osztanak fel, amelyek közül az egyik a megadott értéknél kisebb értékeket tartalmaz, például pivot, amely alapján a partíciót készítik, egy másik tömb pedig a pivot értéknél nagyobb értékeket tartalmaz.
Quicksort partíciók an tömböt, majd kétszer rekurzívan hívja magát a két kapott alsáv rendezéséhez. Ez az algoritmus meglehetősen hatékony nagy méretű adathalmazok esetében, mivel átlagos és a legrosszabb eset komplexitása O (n2).
Partíció gyors rendezésben
Az animált ábrázolás követése elmagyarázza, hogy hogy megtalálja a pivot értékét egy tömbben.
A pivot érték két részre osztja a listát. Rekurzív módon megkeressük az egyes allisták pivotját, amíg az összes lista csak egy elemet tartalmaz.
Gyors rendezés pivot algoritmus
A gyors rendezésben történő particionálás megértése alapján most próbáljon meg írni egy algoritmust hozzá, amely a következő.
Step 1 − Choose the highest index value has pivotStep 2 − Take two variables to point left and right of the list excluding pivotStep 3 − left points to the low indexStep 4 − right points to the highStep 5 − while value at left is less than pivot move rightStep 6 − while value at right is greater than pivot move leftStep 7 − if both step 5 and step 6 does not match swap left and rightStep 8 − if left ≥ right, the point where they met is new pivot
Gyors rendezés pivot álkód
A fenti algoritmus álkódja levezethető –
Gyors rendezési algoritmus
A pivot algoritmus rekurzív használatával kisebb lehetséges partíciókhoz jutunk. Ezután minden partíció feldolgozásra kerül a gyors rendezéshez. Rekurzív algoritmust határozunk meg a quicksort számára az alábbiak szerint –
Step 1 − Make the right-most index value pivotStep 2 − partition the array using pivot valueStep 3 − quicksort left partition recursivelyStep 4 − quicksort right partition recursively
Pszeudokód gyors rendezése
Ha többet szeretne kapni belőle, nézze meg gyorsan az álkódot rendezési algoritmus –
Ha szeretne többet megtudni a C programozási nyelv gyors rendezéséről, kattintson ide.