試圖圍繞這個代碼如何找到一個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」總是如此)。 –