试图围绕这个代码如何找到一个int数组的中位数,如从this booklet的屏幕截图中看到的。我一直在尝试使用C++复制代码块中的代码,如我的代码中所见。我将如何实现这个蛮力中值搜索算法?
我需要使用哪些基本操作?我需要更改哪些代码才能运行?
#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;
}
############固定编码######################。
#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;
}
你的'for'循环不正确(提示:'n-1'部分)。 –
for循环按照小册子中的算法进行操作。单击“此小册子链接” – Turtle
我的意思是这不正确的正确逻辑(即他们没有做你认为他们正在做的事 - 对于发布的代码,“n-1”总是如此)。 –