Wpis z mikrobloga

#programowanie #cpp

Mam do wykonania pewien projekt i muszę użyć w nim bottom-up merge sorta.
Kiedy już wszystko napisałem, okazało się, że dzieję się coś dziwnego.

Kod obrazujący problem:
http://wklej.org/id/2252010/

Output:
http://wklej.org/id/2248991/
http://wklej.org/id/2252048/

I tutaj moje pytanie - dlaczego pierwsze sortowania wykonują się dłużej niż pozostałe?
Czasami jest to tylko pierwsze, czasami kilka, a czasami tak jak w wynikach podanych powyżej, ale zawsze, przynajmniej to pierwsze sortowanie zajmie więcej czasu. Wiem, że tablica może przypadkowo zostać wypełniona tak, że merge sort wolniej ją posortuje, ale tak się dzieje za każdym razem ( ͡° ʖ̯ ͡°)
  • 9
@mackar Nie próbowałem wcześniej.
output po edycji: http://wklej.org/id/2253291/
tl;dr czas wykonywania spadł o ~1000µs, ale pierwsze sortowania nadal wykonują się dłużej od reszty

W outputach, które załączałem czas stabilizuje się po kilkunastu iteracjach. Czasami następuje to szybciej, ale jak pisałem, zawsze przynajmniej pierwszy wynik jest znacznie wyższy od pozostałych.