MakarovSuites
Polski
EnglishDeutschРусскийУкраїнськаFrançaisEspañolItalianoPolski
Kontakt i licencje

Math

Wyścig sortowań

Trzy sortowania biegną po tej samej tablicy z tą samą szybkością w PORÓWNANIACH, i pierwszy kończy ten, kto zapytał mniej. Decyduje nieporządek, nie rozmiar: na posortowanym wejściu wstawianie bierze 63 porównania, a szybkie 2016.

Wyścig sortowań — Obraz z aplikacji
Obraz z aplikacji

Co się dzieje

Trzy tory, jedna tablica i jeden wspólny budżet pracy: wszystkie trzy sortowania posuwają się o tyle samo porównań - albo przesunięć, jeśli przełączysz jednostkę - więc pierwsze kończy to, które potrzebowało najmniej tej jednostki, a nie to, które szybciej się rysuje. Każdy tor mówi tym samym językiem: dwa porównywane klucze mają złotą obwódkę, właśnie zapisany klucz błyska na zielono, pivot ma czerwony znacznik, przetwarzany odcinek jest w nawiasie, elementy na ostatecznym miejscu dostają zieloną stopkę, a klucz trzymany przez sortowanie przez wstawianie wisi nad luką, do której spadnie. Przewidź zwycięzcę przed «Start» albo prowadź wyścig po jednej jednostce. Wypróbuj wejścia: na posortowanej tablicy wstawianie kończy niemal od razu, a quicksort z ostatnim elementem jako pivotem trafia na swój najgorszy przypadek; odwrotny porządek to najgorszy przypadek wstawiania; przy powtarzających się kluczach kolor to pozycja na wejściu, a scalanie zachowuje kolejność równych kluczy, podczas gdy quicksort je miesza. Każdy tor pokazuje też rzeczywisty czas przebiegu na tym komputerze - trzecią wielkość, nigdy jednostkę wyścigu.

Równania modułu
Równania
n elementów, a wyścig toczy się w PORÓWNANIACH - wielkości, o której mówią wzory
sortowanie przez wstawianie PRZENOSI element dokładnie tyle razy, ile tablica ma inwersji: tożsamość dla KAŻDEJ permutacji, sprawdzona dla wszystkich n! przy n <= 8
porównania przy wstawianiu = inwersje + (n − 1) − (minima prefiksowe przy i >= 1);  średnia = n(n−1)/4 + n − H_n  DOKŁADNIE:  n = 8 -> 19.282142857142858;  n = 64 -> 1067.2561090962943
sortowanie szybkie (Lomuto, ostatni element jako element osiowy) średnia = 2(n+1)H_n − 4n  DOKŁADNIE:  n = 8 -> 16.921428571428571;  n = 64 -> 360.70581748175005
sortowanie przez scalanie, przypadek najgorszy = n·ceil(lg n) − 2^ceil(lg n) + 1 - wzór, a nie ograniczenie: 321 przy n = 64, wobec ceil(lg n!) = 296, dolnej granicy DOWOLNEGO sortowania przez porównania
obie wartości są równe dla n <= 4 i potem się rozchodzą; sortowanie przez scalanie zapisuje też n·lg n elementów niezależnie od wejścia - 384 przy n = 64
64 elementy, każde miejsce wymieszane:  1001 inwersji;  wstawianie 1057 porównań / 1001 przesunięć, scalanie 307 / 384, sortowanie szybkie 352 / 306
64 elementy, wejście posortowane:  wstawianie 63, scalanie 192, sortowanie szybkie 2016 - a 2016 to n(n−1)/2, przypadek NAJGORSZY sortowania szybkiego
scalanie wyprzedza wstawianie przy 15 wymieszanych miejscach z 64 (269 wobec 246): próg wyznacza nieporządek, a nie rozmiar - na losowym wejściu scalanie jest lepsze od n = 4
równe klucze, 64 elementy o 8 wartościach:  pary pozostawione w odwrotnej kolejności - wstawianie 0, scalanie 0, sortowanie szybkie 77

Inne eksperymenty

Wróć do katalogu
Wszerz i w głąb — Obraz z aplikacji

Math

Wszerz i w głąb

Dwie kopie labiryntu, dwa przejścia, komórka na takt. Warstwa, w której przeszukiwanie wszerz znajduje komórkę, JEST najkrótszą odległością - to tożsamość. W głąb nigdy nie jest krócej, a o ile dłużej, zależy od celu.

Najtańsza droga — Obraz z aplikacji

Math

Najtańsza droga

Teren, w którym krok kosztuje cenę komórki, do której wchodzisz, a fala zamkniętych wierzchołków rozchodzi się po CENIE, nie po odległości. Suwak kładzie na mapie ujemną krawędź i ma trzy zmierzone zakresy.

Nim i suma binarna — Obraz z aplikacji

Math

Nim i suma binarna

Stosy kamieni, a pod nimi ich zapis binarny. Kolumna z nieparzystą liczbą jedynek płonie na czerwono; bez czerwonych kolumn ten, kto ma ruch, już przegrał. Regułę sprawdza rozwiązanie całego drzewa gry.