【发布时间】:2017-09-08 01:42:05
【问题描述】:
我是计算机科学专业的第一年,我了解到可以通过在开始排序之前对数组进行随机化来避免快速排序的最坏情况。
但是当输入已经是随机的时,这是否也适用?我认为随机排列数组的机会比随机排列的几率更大吗?
【问题讨论】:
-
如果有人给你一副已经洗过的牌,再次洗牌的可能性有多大?随机化一个已经随机化的数组可以让您获得所有可能结果的相同可能性。给快速排序带来严重问题的安排很少。随机打乱数组以获得其中一种排列的可能性非常非常小。
-
谁让你随机排列数组的?!随机化枢轴的选择比随机化所有数据要少得多,而且无论数据是有序还是无序,平均随机化枢轴都会很好地工作。
标签: java arrays sorting random quicksort