Чем я хуже Гильберта?
Jul. 17th, 2008 01:32 pmПресловутый алгоритм сортировки пяти элементов за семь сравнений иногда даёт результат после 6го сравнения. Я не поленился, написал программульку, и оказалось, что среднее число сравнений - 6.93 (точнее 832/5! или 104/15).
Вот более интересная задача: доказать, что пресловутый алгоритм даёт наилучшее среднее число сравнений. Ну, или найти более шустрый в среднем алгоритм.
Вот более интересная задача: доказать, что пресловутый алгоритм даёт наилучшее среднее число сравнений. Ну, или найти более шустрый в среднем алгоритм.
Cross-posted from ZLog
no subject
Date: 2008-07-17 09:22 pm (UTC)к херампрограммульку?(8*6+112*7)/120 = 6.9(3)
no subject
Date: 2008-07-17 09:31 pm (UTC)no subject
Date: 2008-07-17 09:33 pm (UTC)Хаффман в помощь.
no subject
Date: 2008-07-17 09:48 pm (UTC)no subject
Date: 2008-07-17 10:05 pm (UTC)no subject
Date: 2008-07-17 10:26 pm (UTC)no subject
Date: 2008-07-17 10:34 pm (UTC)что k кучек из N чисел можно сортировать быстрее, чем за kA сравнений?
no subject
Date: 2008-07-17 10:39 pm (UTC)no subject
Date: 2008-07-17 10:42 pm (UTC)no subject
Date: 2008-07-17 10:48 pm (UTC)Хафман(6) = 8/3
Хафман(36) = 47/9 < 2*(8/3)
А если "в худшем", то, например, подойдут 3 по 3 за 8 сравнений.
no subject
Date: 2008-07-17 11:02 pm (UTC)3 по 3 за 8 - подойдут, но как?
И чтобы в среднем стало быстрее, должна быть хоть одна комбинация перестановок, в котором сортировка "вместе" строго быстрее, чем сортировка этих перестановок по отдельности, что тоже неочевидно, как.
no subject
Date: 2008-07-17 11:42 pm (UTC)1) a?b
2) d?e
3) g?h
Pri kazhdom variante otvetov -- 27 uporjadochenij.
Pustj, dlja opredeljonnosti, vezde vypalo "<".
4) (a-c)(d-f)(g-i) ? 0
5) (b-c)(e-f)(h-i) ? 0
otvety razbivajut prostranstvo vozmozhnyx konfiguracij na 4 gruppy: 7+7+7+6
V tex, gde "7", najdjotsja vopros (libo a?c, libo b?c, libo (a-c)(b-c)?0), deljashchij na 3+4; "6" voprosom a?c razbita na 2+4.
Itogo: potracheno 6 voprosov, ostalosj 2-3-4 varianta.
"4" vsegda odnim voprosom delitsja na 2+2; "3" delitsja na 1+2.
Poslednij vopros (esli nuzhen) delit "2" na 1+1.
no subject
Date: 2008-07-17 11:46 pm (UTC)Это красиво, но честно ли? Ведь это фактически
(a < c) ^ (d < f) ^ (g < i)
no subject
Date: 2008-07-17 11:51 pm (UTC)no subject
Date: 2008-07-17 11:57 pm (UTC)no subject
Date: 2008-07-17 10:48 pm (UTC)no subject
Date: 2008-07-17 11:54 pm (UTC)no subject
Date: 2008-07-18 12:02 am (UTC)no subject
Date: 2008-07-18 12:09 am (UTC)no subject
Date: 2008-07-18 12:14 am (UTC)no subject
Date: 2008-07-18 12:25 am (UTC)