Size: a a a

2021 February 14

[

[BRM]White Rabbit in Haskell
так и сортировка уже отсортированного списка это тоже пограничный кейс)
источник

A

Andrey in Haskell
ну типо есть закон больших чисел
какой бы список мы не взяли, если его длина достаточно большая, то с вероятностью > 99.9% мы отсортируем его за время не большее, чем c * n log n
источник

[

[BRM]White Rabbit in Haskell
давай так. О большое это не про среднее время работы алга)
источник

A

Andrey in Haskell
ладно, не буду продолжать)
источник

A

Andrey in Haskell
О большое это вообще не про время работы, а про асимптотику
источник

к

кана in Haskell
но вероятность O это таки вероятность O)
источник

[

[BRM]White Rabbit in Haskell
Как-то изи
источник

A

Andrey in Haskell
[BRM]White Rabbit
Как-то изи
Но это не сортировка)
источник

[

[BRM]White Rabbit in Haskell
я по книге иду, уву
источник

A

Andrey in Haskell
А что за книга, кстати?
источник

[

[BRM]White Rabbit in Haskell
Буду писать все функции в один файл, чтоб тот в итоге распух до невозможности
источник

[

[BRM]White Rabbit in Haskell
Andrey
А что за книга, кстати?
Курт.
Только квиксорта там не было, это я сам себе задачку придумал
источник

к

кана in Haskell
[BRM]White Rabbit
Как-то изи
эта функция кстати очень много будет аллоцировать, точнее она на каждый потребенный элемент будет алоцировать
источник

к

кана in Haskell
в то время как иммутабельность позволяет такие вещи пошарить в памяти и просто закольцевать структуру
источник

к

кана in Haskell
cycle xs = let rest = xs <> rest in rest
источник

ЗП

Зигохистоморфный Пре... in Haskell
кана
cycle xs = let rest = xs <> rest in rest
это же будет TCO?
источник

[

[BRM]White Rabbit in Haskell
кана
в то время как иммутабельность позволяет такие вещи пошарить в памяти и просто закольцевать структуру
типа последний элем указывает на первый?)
источник

к

кана in Haskell
нет, хвост после N элементов это начало того же списка, где N - длина исходного списка
источник

[

[BRM]White Rabbit in Haskell
ну, я так и сказал
источник

к

кана in Haskell
вот такой тест:

main = print $ length (take 100000000 (cycle [1, 2, 3]))

твоя версия на первом скрине и моя на втором
источник