Tôi đang cố tìm kiếm một mảng sắp xếp giảm dần bằng mã tìm kiếm nhị phân này. Tuy nhiên, sau khi tôi sắp xếp nó, và cố gắng tìm kiếm, nó không trở lại với bất kỳ kết quả nào, chỉ là một biểu tượng tải không bao giờ biến mất như thể nó có một vòng lặp vô hạn. Tôi không chắc vấn đề là vì mã có vẻ hợp lý.Tìm kiếm nhị phân của mảng được sắp xếp
Đây là aspx với khung 4.0, C#. Cảm ơn trước!
protected void Button2_Click(object sender, EventArgs e)
{
String item = TextBox1.Text;
int target = Convert.ToInt16(item);
int mid, first = 0, last = mynumbers.Length - 1;
//for a sorted array with descending values
while (first<=last)
{
mid = (first + last)/2;
if (target < mynumbers[mid])
first = mid + 1;
if (target > mynumbers[mid])
last = mid - 1;
else
Label11.Text = "Target " + item + " was found at index " + mynumbers[mid];
}
Tôi nghĩ ... nó phải là 'đầu tiên
Joe
Tôi cũng đã thử điều đó. Điều gì xảy ra sau đó là điều tương tự hoặc nó làm một cái gì đó kỳ lạ và mang lại cho tôi kết quả cho số cuối cùng chỉ. –
Thực tế <= là chính xác, bạn cần phải đi qua vòng lặp trên một điều kiện == bởi vì họ có thể hội tụ trên cùng một vị trí trong vượt qua cuối cùng và bạn cần phải xem nếu mục là bằng mục tiêu. –