递归获得数组中第k个最小的元素

用户名

我正在尝试从教科书中提供的伪代码“翻译”此算法。我的程序一直崩溃,但是我不确定自己的实现哪里出错了。这是图像中的伪代码,其下面是我的代码:在此处输入图片说明

int kSmallFirst (int k, int anArray[], int first, int last) {
    int pivotIndex = 0;

    if (k < pivotIndex - first + 1)
        return kSmallFirst(k, anArray, first, pivotIndex - 1);
    else if (k == pivotIndex - first + 1)
        return pivotIndex;
    else
        return kSmallFirst(k - (pivotIndex - first + 1), anArray, pivotIndex + 1, last);
}

int main () {
    int i = 0;
    int arr[512];
    fstream data;
    data.open("data.txt");

    while (!data.eof()) {
        data >> arr[i];
        i++;
    }

    data.close();

    cout << kSmallFirst(42, arr, 0, i-1);

    return 0;
}

非常感谢你!

西亚潘

问题是:您尚未实现算法的主要部分,该部分在您的书中用斜体字进行了描述

从“ anArray [first..last]”中选择一个枢轴值“ p”

将“ anArray [first..last]”的值划分为“ p”

这两行不是评论!它们是您要转换为C / C ++代码,以使您的代码能够执行您想要的操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用分区的数组中第K个最小元素

来自分类Dev

获得数组中的最小值

来自分类Dev

转换数组中的第K个元素

来自分类Dev

如何获得数组中的第n个数字?不行

来自分类Dev

递归以获得数组中的最大差异

来自分类Dev

获得数组中每个元素的8个低位有效位

来自分类Dev

返回第k个最小元素的函数

来自分类Dev

在数组MIPS中查找第K个不同的元素

来自分类Dev

两个排序数组的并集中的第k个最小元素

来自分类Dev

两个排序数组的并集中的第k个最小元素

来自分类Dev

从两个排序的数组中找到第k个最小的元素

来自分类常见问题

在数组中查找K个最小元素(Java)

来自分类Dev

如何获得数组元素的序列?

来自分类Dev

Java TreeMap获得第K个最小键

来自分类Dev

从列表中打印第k个元素。列表将基于另一个数组中存在的数字获得

来自分类Dev

使用递归在Python列表中查找第K个最大元素

来自分类Dev

如何在Scala中获取优先级队列的第k个最小元素?

来自分类Dev

如何在Ruby中获得数字的第n个根?

来自分类Dev

jQuery获得数字中的第9个字符

来自分类Dev

我如何获得数组 React js 中的第一个唯一 ID 元素和最后一个唯一 ID 元素

来自分类Dev

如何从k个交换中的2个数组中获得最小相加结果?

来自分类Dev

向数组中插入绝对差后,找到数组中的第k个最大元素

来自分类Dev

部分排序以找到第k个最大/最小元素

来自分类Dev

在O(log n)中找到第k个最小元素

来自分类Dev

部分排序以找到第k个最大/最小元素

来自分类Dev

最大堆查找第 k 个最小元素

来自分类Dev

Haskell中列表的第K个元素

来自分类Dev

如何获得数组第一个元素的镜像?

来自分类Dev

PHP仅获得数组的第一个元素

Related 相关文章

热门标签

归档