
David
05.09.2018
06:48:22

Alexander
05.09.2018
06:48:27

David
05.09.2018
06:48:45
я пока не понял какое отношение она имеет к qsort и мне очень интересно ))

Nick
05.09.2018
06:48:52

Google

Alexander
05.09.2018
06:50:02

Pawel
05.09.2018
06:50:32

Мерлин
05.09.2018
06:50:33

Nick
05.09.2018
06:50:36

Pawel
05.09.2018
06:51:28

Alexander
05.09.2018
06:51:44

David
05.09.2018
06:51:46

Nick
05.09.2018
06:51:54

Vladimir
05.09.2018
06:53:09

Pawel
05.09.2018
06:53:57

Nick
05.09.2018
06:54:04

Мерлин
05.09.2018
06:54:30

Google

Pawel
05.09.2018
06:55:07

Alexander
05.09.2018
06:55:16
Ещё раз смотри
Что там ещё раз смотреть? Приходит список длинны n, мы поделим его на части log n раз. При этом после каждого деления у нас добавляется log₂k списков (где k - глубина текущей рекурсии), сумма длинн которых всегда равна n.

David
05.09.2018
06:55:25
@bertolu4i поясните про аморт. сложность пожалуйста

Pawel
05.09.2018
06:55:58

Nick
05.09.2018
06:56:00

Мерлин
05.09.2018
06:56:12

David
05.09.2018
06:56:38

Мерлин
05.09.2018
06:57:47

Alexander
05.09.2018
07:00:07
ну а теперь посмотри как устроены списки в хаскеле)
так ну первый рекурсивный вызов у нас заюзает ~ n + (n - n / 2) памяти, вторая ~ n + (n - n / 2) + (n - n / 4), третья ~ n + (n - n / 2) + (n - n / 4) + (n - n / 8). Снова n * log n.
UPD: на каждой глубине рекурсии будет заюзано на самом деле ~ n + n * k / 2, где k глубина рекурсии. В общем-то это ничего не меняет, расход по памяти остаётся O(n * log n)

Pawel
05.09.2018
07:01:39

Мерлин
05.09.2018
07:02:09
)

Pawel
05.09.2018
07:06:48

David
05.09.2018
07:07:41
ого, (не хвостовая) рекурсия без потребления стека, это как?

Мерлин
05.09.2018
07:08:15
)

David
05.09.2018
07:08:52
ну я думаю, тут речь шла о том что сам список на стек не копируется

Google

David
05.09.2018
07:09:06
но я все еще жду пояснений про аморт. сложность ?

Pawel
05.09.2018
07:10:30

Мерлин
05.09.2018
07:11:05
И да, кто-то, не помню кто, говорил недавно что никто нормальный не будет использовать рекурсию, что всегда лучше переписать

Pawel
05.09.2018
07:13:10

Dorian
05.09.2018
07:15:48
Весело у вас тут

Pawel
05.09.2018
07:15:50

Dorian
05.09.2018
07:16:05
Проснулся в чате хаскеля

Алексей
05.09.2018
07:16:35

Мерлин
05.09.2018
07:16:40

Мерлин
05.09.2018
07:17:13

Olzhas
05.09.2018
07:18:48
рекурсия по памяти же неочень

Pawel
05.09.2018
07:18:59

Диёр
05.09.2018
07:19:18

David
05.09.2018
07:19:20

Olzhas
05.09.2018
07:19:29

Алексей
05.09.2018
07:19:40

Диёр
05.09.2018
07:19:44

Google

David
05.09.2018
07:20:05

Диёр
05.09.2018
07:20:29
У хаскеля на хвостовой рекурсии ни с памятью проблем, ни с переполнением стека
Так что о чём разговор вообще

David
05.09.2018
07:20:59
где там хвостовая рекурсия?

Olzhas
05.09.2018
07:21:18

Алексей
05.09.2018
07:21:59

Admin
ERROR: S client not available

Olzhas
05.09.2018
07:22:08
да и циклы хоть и выглядят страшно, но простые

Alister
05.09.2018
07:22:30
простые для человека, который привык к ним

Диёр
05.09.2018
07:22:37

Alister
05.09.2018
07:22:43
рекурсия натуральнее если у тебя математическое мышление

David
05.09.2018
07:22:45
что И?

Alister
05.09.2018
07:22:48
индукция, все дела

David
05.09.2018
07:23:05
И?
в рекурсивном квиксорте нет хвостовой рекурсии

Алексей
05.09.2018
07:23:07

Alister
05.09.2018
07:23:09
плюс циклы не являются абстрагируемой единицей и строго процедурны
короче говоря - не подлежат генерализации и не очень вписываются в современное ПО

Olzhas
05.09.2018
07:23:49

Alister
05.09.2018
07:24:16
как там у вас, слышал дженерики завезли наконец-то

Google

Алексей
05.09.2018
07:24:22
Скорее за ФП, хотя он и так уже идёт

Olzhas
05.09.2018
07:24:36
фп заебись

Алексей
05.09.2018
07:24:51

David
05.09.2018
07:29:11
циклы не нужны

Lucky
05.09.2018
07:30:03
как жить то без них?

Marperia
05.09.2018
07:30:56

Alister
05.09.2018
07:30:59
любой цикл можно представить в виде рекурсии и наоборот

?
05.09.2018
07:31:12

Marperia
05.09.2018
07:31:27
А причём тут ФП и golang? Там же кроме замыканий ничего нельзя.

Alexander
05.09.2018
07:32:12
зачастую цикл вообще можно заменить специальными функциями для обработки структур данных. типа filter, map, reduce и тд

Pawel
05.09.2018
07:32:17
да по фигу как написана стандартная сортировка. Это вообще не в тему здесь

Мерлин
05.09.2018
07:32:58
Ну то есть:
- рекурсия это плохо
- очень плохо
- она ест память
- процессор
- стек
Если только она не написана авторами го. Тогда она прекрасна

Vladimir
05.09.2018
07:33:41
Шок: рекурсия ест процессор

Marperia
05.09.2018
07:33:51

Алексей
05.09.2018
07:34:12

David
05.09.2018
07:34:12
особенно плохо, когда она написана на хаскеле, на хаскеле она есть в nlogn раз больше памяти и процессоров

Мерлин
05.09.2018
07:34:19