Size: a a a

2020 August 21

EG

Emmanuel Goldstein in rust_offtopic
Αλεχ Zhukovsky
хм, теоретически я это знаю, но практически чет не видел сортировок без обмена
источник

D

Dima in rust_offtopic
Αλεχ Zhukovsky
хм, теоретически я это знаю, но практически чет не видел сортировок без обмена
ну как бы trie
источник

SP

Stanislav Popov in rust_offtopic
смотри @Psilon представь функцию min/max. они линейны, так?
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
тогда почему всегда его не юзать? Даже если ключей столько же сколько элементов O(n+n) = O(n)
источник

SP

Stanislav Popov in rust_offtopic
вот тут то же самое - просто проходишься по массиву и суешь в аккумулятор какбудто ищешь min, но у тебя 100 аккумуляторов
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Stanislav Popov
вот тут то же самое - просто проходишься по массиву и суешь в аккумулятор какбудто ищешь min, но у тебя 100 аккумуляторов
хм, ну ваще логично
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
но это не инплейс
источник

EG

Emmanuel Goldstein in rust_offtopic
Αλεχ Zhukovsky
тогда почему всегда его не юзать? Даже если ключей столько же сколько элементов O(n+n) = O(n)
Потому что k это рендж.
Если ты сортируешь хотя бы u64, то у тебя будет k = 18446744073709551616
источник

EG

Emmanuel Goldstein in rust_offtopic
Если ты сортируешь потенциально бесконечные типы, вроде строк, то это вообще неприменимо
источник

SP

Stanislav Popov in rust_offtopic
а наебалово в том что просто на один итем у тебя больше времени
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Emmanuel Goldstein
Потому что k это рендж.
Если ты сортируешь хотя бы u64, то у тебя будет k = 18446744073709551616
O(n+18446744073709551616) = O(n) 🧟‍♀️
источник

EG

Emmanuel Goldstein in rust_offtopic
Это для counting sort
источник

EG

Emmanuel Goldstein in rust_offtopic
Αλεχ Zhukovsky
O(n+18446744073709551616) = O(n) 🧟‍♀️
Да, но константа очень большая. В реальности тебе, обычно, важна не асимптотика, а скорость выполнения на твоих типичных данных.
источник

SP

Stanislav Popov in rust_offtopic
Αλεχ Zhukovsky
O(n+18446744073709551616) = O(n) 🧟‍♀️
да, именно
источник

EG

Emmanuel Goldstein in rust_offtopic
Поэтому это хорошо работает для значений, у которых маленький рендж.
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
ладно, шучу
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
просто я кроме обменных сортировок в реальности никаких не видел
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
где-то на границе знаний есть понимание что они есть
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
но квик/мерж/инсершн в зависимости от требований
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
и усё
источник