dual-pivot quicksort
Все истинно гениальное очень просто.
http://iaroslavski.narod.ru/quicksort/DualPivotQuicksort.pdf
http://permalink.gmane.org/gmane.comp.java.openjdk.core-libs.devel/2628
Не прошло и 50 лет.
the place where select game development veterans rant about life, universe, and everything
Все истинно гениальное очень просто.
http://iaroslavski.narod.ru/quicksort/DualPivotQuicksort.pdf
http://permalink.gmane.org/gmane.comp.java.openjdk.core-libs.devel/2628
Не прошло и 50 лет.
kayru:
Идея ведь совсем на поверхности была.
12 September 2009, 4:11 pmПочему раньше про это никто не подумал? =\
look4awhile:
интересно, а 3 и более pivot-а кто-нибудь уже попробовал?
12 September 2009, 8:17 pmкакой-нибудь N-pivot? адаптивно N от размера, скажем?
kayru:
2 look4awhile: По-моему, дополнительные операции сравнения перевесят сохраненные операции обмена.
12 September 2009, 8:44 pmCreatorCray:
Сбацал бы кто performance тест на C++ со сравнением хотяб с std::sort
16 September 2009, 9:03 amkayru:
2CreatorCray: приведенный в пдфе код практически без изменений компилируется как с++
16 September 2009, 11:54 pmkayru:
http://www.everfall.com/paste/id.php?5srxcy7g5hcb
std::sort: 252436
dual-pivot: 185687
ratio: 0.735581
vs2008, intel c2d e6850
В среднем прирост колебется в пределах 20-25%
17 September 2009, 2:54 amCreatorCray:
2kayru: блин, точно… :)
В общем получается что на DWORDах новый qsort делает старый в раза 1.5-2
17 September 2009, 10:36 pmНо с ростом размера сортируемых объектов новый начинает ацки сливать.
highly professional scums » Blog Archive » Bubblesort, кеши и быстродействие:
[...] Несколько интересных соображений, навеянных публикациями по dual-pivot quicksort. [...]
2 October 2009, 6:38 am