Розділ Ломуто проти Хоара Ломуто страждає при сортуванні рівних клавіш, тоді як розділ Хоара - ні.
Обидві схеми розділів однаково страждають при використанні стрижня, віддаленого від медіани.
Міра розладу
Міру розладу вибрати для цілей хитрості просто.
Відповідь: Наскільки віддаленою від медіани є фіксований шарнір порівняно зі випадковими даними?
Якщо ви наполягаєте на тому, щоб використовувати розділ Lomuto і якщо ви вважаєте, що дозволені повторювані значення, вам потрібно додати наступний тест на випадковість:
B: Скільки є повторюваних елементів у порівнянні з випадковими.
Звичайно, досить нерозумно вважати, що у вашому наборі даних дозволені повторювані значення та все ж оцінюють розділ Lomuto, тому, ймовірно, слід попередньо виключити дублікати або перейти на розділ Hoare або припустити, що дублікати рідкісні.
Обидва заходи є тривіальними для кількісного визначення статистичних даних.
Ми можемо виключити патологічні дані
Будь-які інші відхилення від випадковості не матимуть значення для цілей аналізу швидкості. Поки стрижень близький до медіани, він буде добре працювати на всіх даних, які не є патологічними.
Відстань від випадкових справді повинно бути великим, щоб бути швидким патологоанатомічним, тому ми можемо це виключити.
Ніколи не використовуйте в реальному коді жодних фіксованих (-ів)
звітків. Зверніть увагу, що якщо ви пишете реальний код з фіксованим шарніром *) (яким би не був цей поворот), ви відкриваєтеся до атаки відмови в службі, тому що зловмисник може вставити патологічне значення саме в цій точці, і тому завжди слід вибирати випадковий елемент як опорний.
*) або декількох поворотів, якщо ви вибираєте кращий з x поворотів.