找到2个数组中第k个最大的元素总和

时间:2011-08-18 23:41:08

标签: c algorithm

我知道之前已经发布了这个帖子但是我试着去了 我尝试编码,但显示错误的结果!显然我的逻辑中有错误。有人可以解释一下我在哪里有错误吗?

这里我们假设数组按降序排序!

int kthlargestsum(int a[], int b[],int k)
{
    int aIndex=0;
    int bIndex=0;
    int sum=0;
    int i;
    for(i=0;i<k;++i)
    {
        if(a[aIndex]>b[bIndex])
        {
            sum+=a[aIndex];
            ++aIndex;
        }
        else
        {
            sum+=a[bIndex];
            ++bIndex;
        }
    }
printf("the output is %d",sum);
}

main()
{
    int a[]={10,9,6,4,2};
    int b[]={11,9,7,1};
    int k;
    printf("enter the value of k \n");
    scanf("%d",&k);
    kthlargestsum(a,b,k);

}

1 个答案:

答案 0 :(得分:0)

首先,a[bIndex]似乎对我很怀疑。也许你想要b[bIndex]

对于其他任何事情,你必须更清楚你实际要解决的问题是什么(例子总是很好:)。您编写的代码似乎是从两个数组中添加k个条目。现在,我将如何解释“在2个数组中找到第k个最大元素之和”。