@ProCxx

Страница 933 из 2477
Alexander
03.06.2017
16:37:01
их полно. А мартышкину работу мне делать лично лень. Если ты сделаешь - дело твоё. А я этих бенчей уже насмотерлся, спасибо

не помню, мб даже на cpp-sort есть этот бенч

Constantine
03.06.2017
16:38:16
ну, в моей текущей вселенной timsort это сам по себе мартышкин труд :)

Google
Alexander
03.06.2017
16:39:41
ну, в моей текущей вселенной timsort это сам по себе мартышкин труд :)
я не понимаю, почему ты не хочешь просто взять и почитать, почему эта сортировка хороша и в каких случаях

но это уже дело твоё.

Constantine
03.06.2017
16:40:53
потому что я много разной информации в гугле читал, и по статистике 90% авторов этой инфы попросту не разбираются, что пишут

это безумно заметно, когда начинаешь читать инфу по темам, в которых реально разобрался

Alexander
03.06.2017
16:42:23
это безумно заметно, когда начинаешь читать инфу по темам, в которых реально разобрался
Согласен, есть такая проблема. Но у неё есть идеальное решение - просто берёшь и читаешь исходную научную работу

и вот что-то мне лично ни разу не попадались бестолковые бумаги

Alexander
03.06.2017
16:43:28
http://playfulprogramming.blogspot.com.by/2017/06/constexpr-quicksort-in-c17.html

Constantine
03.06.2017
16:43:50
тестом размером 9 опровергли работу D. P. Dobkin, L. Snyder, 1979

Alexander
03.06.2017
16:44:24
тестом размером 9 опровергли работу D. P. Dobkin, L. Snyder, 1979
так, а где я утверждал, что в работах нет ошибок?))

Constantine
03.06.2017
16:46:18
просто в практической области оригинальную работу 1993 года читать странно

процессоры по-другому работали)

Google
Constantine
03.06.2017
16:47:01
а всякие статьи "мы тут пореализовывали методы" пишет обычно нубло

Alexander
03.06.2017
16:47:38
а можно пример такой статьи?

Constantine
03.06.2017
16:48:14
http://webcache.googleusercontent.com/search?q=cache:lMk9YY-awqsJ:www.cccg.ca/proceedings/2003/26.ps+&cd=3&hl=en&ct=clnk&gl=ru

Alexander
03.06.2017
16:48:15
не вижу ничего плохого в том, что кто-то что-то реализует, чего ещё нет и что можно скопировать себе в случае необходимости (поправка - карйне желательно, чтобы чуваки писали это верно)

http://webcache.googleusercontent.com/search?q=cache:lMk9YY-awqsJ:www.cccg.ca/proceedings/2003/26.ps+&cd=3&hl=en&ct=clnk&gl=ru
1) нет имплементации - это минус 2) Зато хоть результаты тестов дали - и это уже имеет пользу

Constantine
03.06.2017
16:49:20
1) нет имплементации - это минус 2) Зато хоть результаты тестов дали - и это уже имеет пользу
ага, а еще они не заметили, что D. P. Dobkin, L. Snyder, 1973 содержит ошибку

Alexander
03.06.2017
16:49:33
как отправная точка при выборе алгоритмов - пойдёт. Но безоговорочно я бы полагаться на такую работу наверное не стал бы

Constantine
03.06.2017
16:49:34
хотя метод реализовывали

Constantine
03.06.2017
16:51:18
бывает со всеми
или забыли вообще перепроверить все доказательства в работе :)

Alexander
03.06.2017
16:51:56
или забыли вообще перепроверить все доказательства в работе :)
если у них работа является просто имплементацией, то они и могут и не перепроверять, так как они заранее надеятся, что работа верна. Это как контракт

они понадеялись на гарантии, гарантии не выполнились, получили неверный результат. Прям как STL

Constantine
03.06.2017
16:57:42
кстати, а есть специалисты? я слышал краем уха, что структуры типа set<int> реализуемы с log log, что там с константами

Alexander
03.06.2017
16:59:08
крайне спецефичны, и поэтому как обобщённое решение не подходит

насколько я знаю, красно-чёрное нельяза разогнать до log log

также я не слышал о различных таких модификациях для сплей, АВЛ, декартовых и иных деревьев

Constantine
03.06.2017
17:00:29
там важно, что int, разумеется нельзя разогнать красно-черное

потому что есть порог сортировки n * log n

фигня в том, что если std::sort не устраивает, то timsort это как раз попытка специфичного решения

Google
Alexander
03.06.2017
17:02:20
там важно, что int, разумеется нельзя разогнать красно-черное
поэтому я и сказал тебе про ван-эмде-боаса (у этой штуки есть какое-то более нормальное название, нго я его забыл).

Constantine
03.06.2017
17:02:35
да, я уже нашел его

не успел прочитать

Alexander
03.06.2017
17:03:04
фигня в том, что если std::sort не устраивает, то timsort это как раз попытка специфичного решения
std::sort никто менять не собиарется, и если кто-то попытается заменить имплементацию стандартного сорта на тимсорт, я буду крайне против и топить против этого

но как ещё одна очень хорошая альтернатива. Если ты знаешь, что данные в целом неплохо так сорированы, то почему не воспользоваться гтовым годным алгоритмом уже?

Constantine
03.06.2017
17:04:06
вообще я в свое время изучал вопрос о поведении декартовых (любых подобных merge-based) деревьев на недосортированных массивах... пытаюсь вспомнить судорожно

Constantine
03.06.2017
17:04:21
Да, я это уже сказал)

Alexander
03.06.2017
17:04:29
Это теоретически невозможно в общем случае
а тут у человека не общий случай, в том то и дело

про общий я то знаю

Constantine
03.06.2017
17:04:59
Слава, что ты думаешь о timsort? Ну, кроме того, что из-за него на КФ нельзя яву положить на объектах :D

вообще я в свое время изучал вопрос о поведении декартовых (любых подобных merge-based) деревьев на недосортированных массивах... пытаюсь вспомнить судорожно
Там совершенно точно получалось, что если хранить отрезки в качестве treap, суммарно запросы "посортить подотрезок" и "изменить число" выполняются быстрее квадрата

Vladislav
03.06.2017
17:08:29
Слава, что ты думаешь о timsort? Ну, кроме того, что из-за него на КФ нельзя яву положить на объектах :D
Про cf - ну это скорее квиксорт в джаве плохо реализован для примитивных типов, а не преимущество тимсорта

Alexander
03.06.2017
17:09:10
Про cf - ну это скорее квиксорт в джаве плохо реализован для примитивных типов, а не преимущество тимсорта
я с джавами знаком слабо. А в чём причина того, что квиксорт там такой херовый?

Constantine
03.06.2017
17:09:23
по крайней мере, была

Alexander
03.06.2017
17:09:39
Constantine
03.06.2017
17:09:50
потому что разработчики явы не запарились

Alexander
03.06.2017
17:09:56
я знаю, что там говно акое-то написано (как и в libc++)

Google
Constantine
03.06.2017
17:10:03
поэтому же у них все хеш-коллекции ложатся в худшем

Alexander
03.06.2017
17:10:37
потому что разработчики явы не запарились
что-то мне не не верится, что там прям всем плевать на это

Vladislav
03.06.2017
17:10:49
да-да. А почему?
Потому что не хотели вносить недетерминизм, а гарантированные методы выбирать хороший pivot замедляют средний случай

Constantine
03.06.2017
17:11:18
сейчас бы париться по поводу недетерминизма алгоритма сортировки массива

Потому что не хотели вносить недетерминизм, а гарантированные методы выбирать хороший pivot замедляют средний случай
подожди, есть же еще метод просто написать полурекурсивную реализацию и ограничить число шагов

это вообще никак не замедляет средний случай

Admin
ERROR: S client not available

Vladislav
03.06.2017
17:13:18
это вообще никак не замедляет средний случай
Константу увеличивает прилично, как я понимаю

https://www.reddit.com/r/programming/comments/4jlkhv/accu_2016_keynote_by_andrei_alexandrescu/

Constantine
03.06.2017
17:13:58
Константу увеличивает прилично, как я понимаю
в какой момент? вычислять число итераций не долго, неполная рекурсивность не ухудшение константы

Constantine
03.06.2017
17:14:59
Александреску... у меня до сих пор в одном файле написано ` #ifdef ALEXANDRESCU #error "Too easy for Alexanrescu" #endif //копипаста из локи

собственно, там static_assert всякие для C++98

А, я понял о чем ты, так можно наверное
qsort(l, r) //... qsort(l, m); qsort(m+1, r); ==> qsort(l, r) for (iterations++) { //... if (iterations > MAGIC_CONSTANT) { heapsort(l, r); break; } qsort(with minimal length ((l, m), (m+1, r))) (l, r) = with maximal length ((l, m), (m+1, r)) }

Будда
03.06.2017
17:19:32
magic constant? ?

Constantine
03.06.2017
17:19:43
ну да

вроде там на самом деле current_constant = r - l; и потом current_constant = current_constant / 2 + current_constant/4 в таком духе

вместо расчета итераций

Google
Constantine
03.06.2017
17:21:19
как получается 0 - уходим в хипсорт

Будда
03.06.2017
17:21:20
А кто название давал?

Constantine
03.06.2017
17:21:34
я просто налобал в поле ввода же

вроде, именно такие схемы во всяких MS std::sort

с кучей ифов еще на маленькие массивы скидываться в INSERTION

Там нужно примерно посчитать, сколько в среднем должно быть итераций такой штуки

Если это число превосходится, инпут специально построен против текущей реализации qsort

Поэтому мы уходим в heapsort

Ilya
03.06.2017
20:18:59
Люди, у меня например есть строка 2 + 2 и мне нужно её сплитнуть. Как это сделать?

Group Butler [beta]
03.06.2017
20:19:49
Александр
03.06.2017
20:22:17
eval

melancholiac
03.06.2017
20:25:35
в спп есть евал?

(в спп есть все)

Stanislav
03.06.2017
20:32:17
можно и сделать

Andrei
03.06.2017
20:53:08
Dima
03.06.2017
21:08:55
Кажется чатик помер давно

А нет, у меня сбилась дата. (Показал январь 3)

Страница 933 из 2477