1. 问题定义


           输入:S = { x1, x2, ... , xn};

           输出: 排序的S。



2. 随机算法


          基本思想:采用随机抽样的方法确定集合的划分点,然后把集合划分为两个子集合,分别递归地在每个子集合上使用随机排序算法。算法步骤如下:  

          1. 均匀等可能地在S中随机选取一个样本y;

          2. 比较S中的每个元素,把S划分成两个集合:S1 = {x| x∈S,x<y}, S2 = {x| x∈S,x>y};

          3. 递归地排序S1, S2;

          4. 顺序地输出排序的S1, y, S2.



3. 算法性能的分析


          定义随机变量Xij表示S中第i个元素与第j个元素比较的次数(取值1或者0),那么算法比较的总次数为sum(Xij),算法的平均复杂性为E(sum(Xij)),也可写为sum(E(Xij))。假设Pij表示Si和Sj在进行中进行比较的概率,则E|Xij| = 1 * Pij + 0 *(1 - Pij) = Pij。因此关键问题是分析如何求解Pij。

随机排序算法

随机排序算法


相关文章:

  • 2021-11-19
  • 2021-11-12
  • 2022-01-05
  • 2021-11-06
  • 2021-07-14
  • 2022-12-23
  • 2021-07-16
猜你喜欢
  • 2021-09-17
  • 2022-02-26
  • 2021-11-19
  • 2022-02-11
  • 2021-11-19
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案