Sortowanie przez scalanie, liczba kopiowan i porownan

0

Jaka nalezy wykonac liczbe porownan i kopiowan, aby posortowac 4 liczby w najlepszym i najgorszym przypadku uzywajac sortowania przez scalanie.

Czyli mamy takie sytuacje:
a) 1 2 3 4
b) 4 3 2 1

I jak to w miare sprawnie policzyc?

0

Ale robimy to w miejscu? Nie w miejscu? Na listach? Na tablicach?

0

nie w miejscu, na tablicach

0

Ok, wiec zakładając najbardziej naiwną implementację mamy tak na prawdę dokładnie tyle samo kopiowań w każdym przypadku.
Będzie, o ile dobrze liczę, 2nlog2(n) kopiowań w obu przypadkach.
Z porównaniami będzie inaczej bo zakładam że Merge jest tak zaimplementowane ze jak nam się jedna z tablic skończy to drugą po prostu doklei.
Pesymistycznie mamy (n-1)*log2(n) porównań bo na każdym poziomie musimy wszystko ze sobą porównać.
Optymistycznie mamy (n/2)*log2(n) porównań bo na każdym poziomie.

Oczywiście mogę się mylić, więc ktoś mógłby zweryfikować ;)

0

dzieki

1 użytkowników online, w tym zalogowanych: 0, gości: 1