2017-05-08 75 views
0

看过不同的快速排序算法:快速排序 - 为什么随机数据透视?

我没有看到使用随机数据透视的好处。与使用最后一个元素相比,递归调用quickSort(a [],int p,int r),选择随机数是否会随机提高效率?

THX

+0

是的,它的确如此。随机旋转减少了碰到最坏情况的机会,尤其是对于完全或几乎颠倒的数据 – Marcin

+0

请参阅http://www.geeksforgeeks.org/when-does-the-worst-case-of-quicksort-occur/ – bigbounty

+0

有道理,谢谢 –

回答

0

使用随机摆动的原因是,不让对手让你的算法命中最坏情况下的时间。换句话说,随机旋转你的算法在所有数据集上的预期性能同样好。