cost 346 ms
使用中位数的中位数作为 pivot 进行分区的快速排序算法 - quickSort algorithm using median of medians as a pivot for partitioning

StackOverflow 上有很多信息,但我无法完全弄清楚我需要它的方式。 我正在尝试实现一个中位数为中位数的 quickSelect 算法,但不能完全使其工作。 该算法应该使用以下步骤找到数组中输入 n>1 个元素的第 i 个最小元素: 如果 n==1 返回数组中的元素。 将数组中的 n ...

如何在 QuickSelect/QuickSort 中从 Lomuto 分区方案转换为 Hoare 的分区方案? - How to translate from Lomuto Partitioning scheme to Hoare's Partition scheme in QuickSelect/QuickSort?

我正在解决问题https://leetcode.com/problems/k-closest-points-to-origin/此处转载了问题声明: 给定一个点数组,其中points[i] = [xi, yi]表示 XY 平面上的一个点和一个整数k ,返回离原点(0, 0)最接近(欧几里得距离)的 ...

如何计算 O(n) 中未排序频率表的中位数? - How to calculate median of an unsorted frequency table in O(n)?

我有一个数据集,由n 个未排序的元组组成,这些元组表示数字(比如说特定的颜色代码)和它们的频率(出现的次数)。 我想找到最坏情况复杂度为O(n)的数字的确切中位数。 例如: dataset: {(5000, 8000), (25000, 4000), (9, 9000)} median: 50 ...

呼叫值未按预期增加 - Calls value not incrementing as intended

我正在编写一个程序,旨在查找运行 quickselect 所需的平均递归调用次数,并且我添加了一个计数器“调用”来跟踪递归调用的次数。 每次再次调用 quickselect 时,我都会增加它,但是当我对 main 使用更大的数字时,调用次数会迅速进入指数区域。 我想让 main 返回平均呼叫次数,我 ...

Select 使用 QuickSelect 的 K 个最大元素 - Python - Select the K largest elements with QuickSelect - Python

我是 Python 的新手,我正在练习编写代码,但我遇到了一些麻烦。 我正在尝试实现一种基于QuickSelect的算法,在该算法中可以提取K 个最大元素。 因此,在我实现QuickSelect算法并使用它来查找数组 A 中的第 K 个最大元素。然后使用 function k_largest_qu ...

快速选择的正确条件 - Correct conditions for quickselect

我正在实施快速选择算法以获取数组中的第k个元素,但我被困在一个我不知道如何解决的地方。 这是我的代码不起作用: 当然,如果我删除这些行: 它变成快速排序并且工作正常。 而且我理解它为什么不起作用,这是因为当我在上述条件下返回时,我从 0 到 k 的数组可能没有被排序。 但是我无法找到正确的条件,我只 ...

使用快速 select 和中位数中位数查找列表的中位数 - Finding median of a list using quick select and median-of-medians

假设 A = [1, 2, 3, 4, 5, 6, 7, 8, 9]。 我必须在这里找到中位数 5,并且我需要使用快速 select 和中位数的概念。 我制作了以下代码,但由于某种原因,它输出 4 这是错误的。 我哪里错了? 以下只是后面功能需要的一些辅助功能。 对于以下内容,我编写了中位数的代码。 ...

单链表C++的快速选择算法 - Quickselect algorithm for singly linked list C++

我需要一种算法,它可以在线性时间复杂度 O(n) 和恒定空间复杂度 O(1) 中找到单链表的中值。 编辑:单向链表是一个 C 风格的单向链表。 不允许使用 stl(没有容器,没有函数,禁止所有 stl,例如没有 std::forward_list)。 不允许移动任何其他容器(如数组)中的数字。 具 ...

确定性选择算法的递归关系 - Recurrence Relation for Deterministic Selection Algorithm

存在线性时间确定性算法供选择。 我读了这个链接,分而治之的方法看起来像:T(n) <= 12n/5 + T(n/5) + T(7n/10) 但是,我不明白为什么必须是 T(7n/10)。 链接本身已经提到分区的每一半都有大小 (3n/10),因此算法在 (6n/10) 上递归。 即使我们包含 ...

下面的 quickselect 方法在我调用它时返回 undefined 。 快速选择调用自身是否与它有关? - The quickselect method below is returning undefined when I call it. Does it have something to do that quickselect is calling itself?

我创建了一个SortableArray类的实例 然后我像这样在实例上调用quickselect来找到第一个最低值,第一个最低值实际上是第二个最低值,因为它是零索引的。 然后我得到 undefined,这没有任何意义,因为 quickselect 方法包含一个 return 语句。 ...

如何在 Quickselect 中实现 Hoare 分区方案? - How to implement the Hoare partition scheme in Quickselect?

我尝试将Hoare 分区方案作为 Quickselect 算法的一部分来实现,但它似乎每次都给我各种答案。 这是findKthBest函数,它在给定数组 ( data ) 和其中元素的数量的情况下查找数组中的第 K 个最大数(如果为 5 个元素, findKthBest low = 0 , hig ...

在Rcpp中矩阵的所有列或所有行上执行快速选择的多线程最快方法-OpenMP,RcppParallel或RcppThread - Fastest way to multithread doing quickselect on all columns or all rows of a matrix in Rcpp - OpenMP, RcppParallel or RcppThread

我正在使用此Rcpp代码对值的向量进行快速选择 ,即在O(n)的时间内从向量中获取第k个最大元素(我将其保存为qselect.cpp ): 我使用它作为计算所需百分位数的快速方法。 例如 [这看起来好像已经快了,但我需要在应用程序中完成数百万次] 现在,我想修改此Rcpp ...


 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM