Halle zusammen, kann mir bitte jemand sagen, warum folgender C++ Code nicht funktioniert? Es gibt keine Fehlermeldung, allerdings kommt nie das korrekte Ergebnis heraus :/
Ich möchte ein sortiertes Array (aiZahlen) mithilfe der binären Suche nach einer Zahl (iGesucht durchsuchen). Anschließend soll ausgegeben werden, ob die Zahl enthalten ist oder nicht.
Ich bitte um Antworten
Ich möchte ein sortiertes Array (aiZahlen) mithilfe der binären Suche nach einer Zahl (iGesucht durchsuchen). Anschließend soll ausgegeben werden, ob die Zahl enthalten ist oder nicht.
Code:
#include <iostream>
using namespace std;
int main()
{
int iIndex = 10;
int aiZahlen[] = { 1,2,3,4,5,6,7,8,9,10 };
int iMitte=0, iLinks = 0, iRechts = 1;
char cGefunden = 'n';
int iGesucht = 5;
iLinks = aiZahlen[0];
iRechts = aiZahlen[9];
while (cGefunden == 'n' && iLinks < iRechts)
{
cout << "Mitte =" << iMitte << " " << aiZahlen[iMitte] << endl;
iMitte = (iLinks + iRechts) / 2;
if (aiZahlen[iMitte] == iGesucht)
{
cGefunden = 'j';
} //if
else
{
if (iGesucht>aiZahlen[iMitte])
{
iLinks = iMitte + 1;
} //else-if
else
{
iRechts = iMitte - 1;
} //else-if-else
} //else
} //while Klammer
if (cGefunden == 'j')
{
cout << "Gefunden";
}
else {
cout << "Nicht gefunden";
}
cin.get(); cin.get();
return 0;
}
Ich bitte um Antworten