Mergesort (összefésülő rendezés)
Rendezési algoritmus divide et impera elv mentén.
Lépések:
- felosztjuk a tömböt két részre
- rendezzük (rekurzívan a két részt)
- összefésüljük a két részt
| |
Ha ugyanezt csökkenő sorrendbe rendezésre akarjuk felhasználni, akkor csak az öszefésülésben használt feltétel kell változzon (14. sor):
if (t[ib] >= t[ij]) ...
Feladat
Hasonlítsuk össze az insertion sort, selection sort, exchange sort, bubble sort és mergesort futásidejét a sort-bemenetek.zip állományban található tesztesetekre (győződjünk meg arról is, hogy az algoritmusok kimenete helyes).
A pontosabb mérés érdekében lehet többször futtatni és átlagolni az időket.
| Algoritmus | input-1k.txt | input-10k.txt | input-50k.txt | input-100k.txt |
|---|---|---|---|---|
| Insertion sort | 19ms – 20ms | 200ms – 300ms | 4s – 6.3s | 25s |
| Selection sort | 10ms – 22ms | 120ms – 260ms | 2.4s – 5.4s | 9.5s – 21s |
| Exchange sort | 10ms – 73ms | 250ms – 281ms | 4s – 10s | 13s – 34s |
| Bubble sort | 16ms – 30ms | 560ms – 800ms | 12s – 20s | 50s – 83s |
| Merge sort | 10ms – 31ms | 31ms – 50ms | 170ms – 200ms | 300ms – 440ms |