@gogolang

Страница 1362 из 1630
Alexander
05.09.2018
06:48:27
Например?
например O(n) требование по памяти

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

Nick
05.09.2018
06:48:52
Google
Alexander
05.09.2018
06:50:02
Удовлетворяет ж
нет, там расход памяти O(n²)

Pawel
05.09.2018
06:50:32
нет, там расход памяти O(n²)
может быть больше либо меньше, но не суть

Мерлин
05.09.2018
06:50:33
да, меня интересует скорость и гарантии по потреблению памяти. Вы не согласны с тем, что "прстой" квиксорт на хакеле сложнее чем O (n * log n) / O(1) ?
А зачем вам асимптотическая сложность, если в реальности будет по-другому? Ведь, внезапно, в реальности у реализации на хаскеле потребление памяти скорее всего не растёт как n*ln(n)

Nick
05.09.2018
06:50:36
Alexander
05.09.2018
06:51:44
Смотри ещё раз)))
ладно, да, O(n * log n)

David
05.09.2018
06:51:46
Nick
05.09.2018
06:51:54
ладно, да, O(n * log n)
Ещё раз смотри

Vladimir
05.09.2018
06:53:09
Ещё раз смотри
??? каждое "ещё раз смотри" добавляет логарифм?

Pawel
05.09.2018
06:53:57
А зачем вам асимптотическая сложность, если в реальности будет по-другому? Ведь, внезапно, в реальности у реализации на хаскеле потребление памяти скорее всего не растёт как n*ln(n)
я там выше приводил код с in place сортировкой на хаскиле. Вы егопроигнорили, а зря - лучшие учёные умы на хакеле бьются многие годы над тем, что любой джун на голанге напишет

Мерлин
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
Мерлин
05.09.2018
06:56:12
это всё придирки к словам. Оно не постоянное
Неа Вы не сможете спрогнозировать потребление памяти для языка со сборщиком мусора, ленивостью и сильно оптимизирующийся компилятором

David
05.09.2018
06:56:38
в гугл и випедию плиз
я то в курсе что это такое, поясните какое отношение она имеет к qsort?

Мерлин
05.09.2018
06:57:47
я там выше приводил код с in place сортировкой на хаскиле. Вы егопроигнорили, а зря - лучшие учёные умы на хакеле бьются многие годы над тем, что любой джун на голанге напишет
Пожалуйста, напишите библиотечную функцию быстрой сортировки для go Чтобы было честно, пусть она работает каким в других языках с обобщёнными типами

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)

Мерлин
05.09.2018
07:02:09
что значит "скорее всего"? оно либо будет либо не будет и асимптотической сложности это имеет прямое отношение
Неа Учитывая что: - у нас работает оптимизирующий компилятор - сборщик мусора - переупорядочивание инструкций - кэширование данных - кэширование инструкций - бранч предиктор - предиктор подкачки памяти - куча магии - всё это работает внутри ОС нереального времени Я бы вообще не стал бы делать никаких сильных заявлений, особенно без экспериментов

уже написали - sort.Slice
Она написана через рекурсию

)

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
И да, кто-то, не помню кто, говорил недавно что никто нормальный не будет использовать рекурсию, что всегда лучше переписать

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

Pawel
05.09.2018
07:15:50
Это всё результаты бенчмарков иди измерений или твои догадки? Замеры в студию
это кстати можно. хаскильный квиксорт на значительно меньшем массиве упадёт с SO чем гошный

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

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

Диёр
05.09.2018
07:19:18
рекурсия по памяти же неочень
Компилятор должен разрулить хвостовую рекурсию

David
05.09.2018
07:19:20
это кстати можно. хаскильный квиксорт на значительно меньшем массиве упадёт с SO чем гошный
хаскельный библиотечный квиксорт ничем не хуже гошного и конечно же не жрет стек

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
плюс циклы не являются абстрагируемой единицей и строго процедурны

короче говоря - не подлежат генерализации и не очень вписываются в современное ПО

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
как жить то без них?
в жаве есть streams

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
David
05.09.2018
07:34:12
особенно плохо, когда она написана на хаскеле, на хаскеле она есть в nlogn раз больше памяти и процессоров

Мерлин
05.09.2018
07:34:19
да по фигу как написана стандартная сортировка. Это вообще не в тему здесь
Это именно в тему того, что рекурсию можно применять, если она удобна А она бывает удобна, и не только в стд Невероятно, но факт

Страница 1362 из 1630