Algorithm 理解Quickselect平均运行时间的推导

Algorithm 理解Quickselect平均运行时间的推导,algorithm,big-o,probability,Algorithm,Big O,Probability,我试图理解quickselect算法的平均运行时间的推导。我对几点感到困惑 首先,它们从: 假设我们要从中选择第k个最小元素的场是[1,…,n]的随机排列。我们在算法过程中选择的轴心元素也可以看作是给定的随机排列。在算法过程中,我们总是从这个排列中选择下一个可行支点,因此它们被随机均匀地选择,因为每个元素与随机排列中的下一个可行元素具有相同的发生概率 轴心元素如何仅仅是一个随机排列?下一个可行支点是如何一致随机的?这不取决于k和选择的第一个枢轴吗?这都是如何考虑这样一个事实,即在算法结束之前选择

我试图理解quickselect算法的平均运行时间的推导。我对几点感到困惑

首先,它们从:

假设我们要从中选择第k个最小元素的场是[1,…,n]的随机排列。我们在算法过程中选择的轴心元素也可以看作是给定的随机排列。在算法过程中,我们总是从这个排列中选择下一个可行支点,因此它们被随机均匀地选择,因为每个元素与随机排列中的下一个可行元素具有相同的发生概率

轴心元素如何仅仅是一个随机排列?下一个可行支点是如何一致随机的?这不取决于k和选择的第一个枢轴吗?这都是如何考虑这样一个事实,即在算法结束之前选择的枢轴的总数不是固定的,取决于中间选择以及k?

。 接下来,答案是:

有一个简单但非常重要的观察结果:我们只比较两个元素
i
j
(带
i