Алгоритми та структури даних · Senior · Запитання 18 з 75
Що не так із перемішуванням масиву через arr.sort(() => Math.random() - 0.5)?
- 1Він падає, бо компаратор неузгоджений
- 2Він завжди повертає масив у початковому порядку
- ✓Правильна відповідь: Результат зміщений; Фішер-Єйтс дає рівномірний розподіл
Пояснення
Алгоритми сортування розраховують на узгоджений компаратор; випадкові відповіді роблять деякі перестановки значно ймовірнішими, залежно від рушія. Фішер-Єйтс міняє кожну позицію з випадковою попередньою за O(n) і дає рівномірний розподіл.