Hi ich versuche eine binäre Suche in einem sortierten Array durchzuführen, indem ich die Eingabe durch den Benutzer mittels eines Textfelds benutze.binäre Suche im sortierten Array
Dies ist mein Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace arra3 {
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int[] arr = { 0, 10, 20, 30, 40, 50, 60, 70, 80, 90 };
int low, high, user_input, mid;
private void textBox1_TextChanged(object sender, EventArgs e)
{
user_input = Convert.ToInt32(textBox1.Text);
while (low <= high)
{
mid = (low + high)/2;
if (arr[mid] < user_input)
{
low = mid + 1;
continue;
}
else if (arr[mid] > user_input)
{
high = mid - 1;
continue;
}
else
{
MessageBox.Show(mid.ToString());
}
}
MessageBox.Show("-1".ToString());
}
}
}
Aber ich erhalte entweder -1 als Ausgang oder in einer Endlos-Schleife von 0 eingeben, wenn ich eine Null eingeben.
Irgendwelche Hilfe bitte?
warum machen Sie nicht zuerst eine Baumstruktur? - https://msdn.microsoft.com/en-us/library/ms379572(v=vs.80).aspx – tommybee
@MCPol die Antwort wurde aktualisiert –
@MCPol, bitte markieren Sie Ihre Frage als beantwortet (akzeptieren Sie meine Antwort). Bitte lesen Sie die Regeln hier: https://stackoverflow.com/help/someone-answers. Vielen Dank. –