考虑一个数组A = {1,2,0,4,5}我如何通过在分区过程中将中间元素作为枢轴来使用快速排序对它进行排序?枢轴变为'0',依此类推此数组,不存在有效的左指针。如何解决此异常?有人可以逐步解释该算法的工作原理吗?
答案 0 :(得分:1)
多年来,对选择关键点算法进行了一系列改进,第一个使用最后一个元素作为关键点,不久就改进了选择随机元素,这可以防止对算法的恶意攻击,然后选择媒体x个随机数。
一个median of medians,它将元素划分为30%/ 70%和70%/ 30%之间,因此始终保证至少有30%的进度,不错的article对此进行了解释,最近( 2017年)通过自适应算法改进了Alexandrescu et al。