Algorytmy i struktury danych · Senior · Pytanie 18 z 75
Co jest nie tak z tasowaniem tablicy przez arr.sort(() => Math.random() - 0.5)?
- 1Rzuca błąd, bo komparator jest niespójny
- 2Zawsze zwraca tablicę w pierwotnej kolejności
- ✓Poprawna odpowiedź: Wynik jest obciążony; Fisher-Yates daje rozkład równomierny
Wyjaśnienie
Algorytmy sortowania zakładają spójny komparator; losowe odpowiedzi czynią niektóre permutacje znacznie bardziej prawdopodobnymi, zależnie od silnika. Fisher-Yates zamienia każdą pozycję z losową wcześniejszą w O(n) i daje rozkład równomierny.