C++ 我将如何实现这种暴力中值搜索算法?

C++ 我将如何实现这种暴力中值搜索算法?,c++,algorithm,C++,Algorithm,我想了解一下这段代码是如何找到一个int数组的中值的,如图中的屏幕截图所示。我一直试图用C++来复制代码块中的代码,如我的代码中所见。p> 我需要使用哪些基本操作?我需要更改什么才能使代码正常工作 #include <iostream> #include <algorithm> using namespace std; int main() { int A[] = {2,3,4,7,8,9,10,12,15}; int n = ( sizeof(A) / sizeof(

我想了解一下这段代码是如何找到一个int数组的中值的,如图中的屏幕截图所示。我一直试图用C++来复制代码块中的代码,如我的代码中所见。p> 我需要使用哪些基本操作?我需要更改什么才能使代码正常工作

#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
int A[] = {2,3,4,7,8,9,10,12,15};
int n = ( sizeof(A) / sizeof(A[0]) );
int k = (n/2);

for(int i=0; n-1; i++)
{
    int numsmaller = 0;
    int numequal = 0;
    for(int j=1; n-1; j++)
    {
        if(A[j]<A[i])
        {
            numsmaller = numsmaller + 1;
        }
        else if(A[j]=A[i])
        {
            numequal = numequal + 1;
        }
    }
    if(((numsmaller < k)&&(k<=(numsmaller + numequal))))
    {
        k = A[i];
        cout << k;
    }
}
return 0;
}
#包括
#包括
使用名称空间std;
int main()
{
int A[]={2,3,4,7,8,9,10,12,15};
int n=(sizeof(A)/sizeof(A[0]);
int k=(n/2);
对于(int i=0;n-1;i++)
{
int numSaller=0;
int numequal=0;
对于(int j=1;n-1;j++)
{
if(A[j]
else if(A[j]=A[i])
应该是
else if(A[j]=A[i])

您可能需要增加编译器的警告级别。通常是
-Wall

此外,在执行
cout
else if(A[j]=A[i])
时,如果(A[j]=A[i]),则应为
else if(A[j]=A[i])

您可能需要增加编译器的警告级别。通常是
-Wall


另外,在执行
cout的时候,这个算法效率很低。为什么要用它来搜索数组


你可能想看看这个算法。它运行得快多了。但是如果你真的在截止日期之前完成了作业,你就会知道。

但是这个算法效率太低了。你为什么要用它来搜索数组


你可能想看看算法。它运行得更快。但是如果你真的在截止日期之前完成了作业,你就会知道。

你的
for
循环不正确(提示:
n-1
部分)。for循环遵循小册子中所示的算法。点击“本小册子链接”我的意思是,这不是正确的逻辑(即,他们没有做你认为他们正在做的事情--
n-1
对于发布的代码总是正确的)。你的
for
循环不正确(提示:
n-1
部分)。for循环遵循小册子中所示的算法。单击“此小册子链接”我的意思是,这不是正确的逻辑(也就是说,他们没有做你认为他们在做的事情--
n-1
对于发布的代码来说总是正确的).Thank you..问题出现在如您所述的if语句中..以及需要如所述的退出。它开始弹出一个错误,该错误通过将两个For循环的第二个条件更改为j进行修复。Thank you..问题出现在如您所述的if语句中..以及需要如所述的退出。它开始弹出一个error通过将两个For循环的第二个条件都改为j来修复它是针对今晚到期的作业它是针对今晚到期的作业
#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
int A[] = {2,3,4,7,8,9,10,12,15};
int n = ( sizeof(A) / sizeof(A[0]) );
int k = (n/2);

for(int i=0;i <= (n-1); i++)
{
int numsmaller = 0;
int numequal = 0;
for(int j=1;j <= (n-1); j++)
{
    if(A[j]<A[i])
    {
        numsmaller = numsmaller + 1;
    }
    else if(A[j]==A[i])
    {
        numequal = numequal + 1;
    }
}
if(((numsmaller < k)&&(k<=(numsmaller + numequal))))
{
    k = A[i];
    cout << k;
    return 0;
}
}
return 0;
}