Algorithm 高效的多重选择算法
我必须实现一个解决多重选择问题的算法。 选举问题是:Algorithm 高效的多重选择算法,algorithm,Algorithm,我必须实现一个解决多重选择问题的算法。 选举问题是: 给定一个由n个元素组成的集合S,这些元素来自一个线性有序的集合,以及一个由1和n之间的正整数组成的集合K={k1,k2,…,kr},多重选择问题是为后代的i,1的所有值选择第K个最小的元素:Ivan所指的算法是对K进行排序,然后递归地解决问题,如下所示。使用QuickSelect查找第K个最小元素x,其中i为ceil(r/2),然后在K和S的小半部分以及K和S的大半部分上递归,将K拆分为i,S拆分为x 对于理论著作的作者来说,寻找在简并(这里
给定一个由n个元素组成的集合S,这些元素来自一个线性有序的集合,以及一个由1和n之间的正整数组成的集合K={k1,k2,…,kr},多重选择问题是为后代的i,1的所有值选择第K个最小的元素:Ivan所指的算法是对K进行排序,然后递归地解决问题,如下所示。使用QuickSelect查找第K个最小元素x,其中i为ceil(r/2),然后在K和S的小半部分以及K和S的大半部分上递归,将K拆分为i,S拆分为x 对于理论著作的作者来说,寻找在简并(这里是相等元素)存在的情况下工作的算法通常不是一个优先考虑的问题,因为它使常见情况的表示更加困难,并且通常不会在确定问题的计算复杂性方面发挥作用。这本质上是一个一维问题,黑箱解法很容易;将输入yi的第i个元素替换为(yi,i),并使用第二个分量在比较中打破联系
实际上,我们可以做得更好。与其在{y:y in S,y