问题描述
- c#二分检索数组元素没显示结果
-
using System;
using System.Collections.Generic;
using System.Text;namespace 二分检索
{
class Program
{
static void Main(string[] args)
{
int[] myArray = new int[10] { 13, 15, 23, 25, 45, 46, 57, 58, 78, 79 };//声明并初始化数组,必须为有序数组
int key = 78;//待查找数据
int low = 0, high = 9;
int mid = (low + high) / 2;
while (low <= high)
{
if (myArray[mid] == key)
{
Console.WriteLine("找到key值,其位置在: " + mid);
return;//结束检索
}
else if (myArray[mid] < key)
{
low = mid + 1;
}
else
{
high = mid - 1;
}
}
Console.WriteLine("没有找到key值");
}
}
}写了段用二分检索数组元素的代码。为什么调试时什么也不显示?
解决方案
解决方案二:
程序死循环了,能有显示就见鬼了。
解决方案三:
using System;
public class Test
{
public static void Main()
{
int[] myArray = new int[10] { 13, 15, 23, 25, 45, 46, 57, 58, 78, 79 };//声明并初始化数组,必须为有序数组
int key = 78;//待查找数据
int low = 0, high = 9;
int mid = (low + high) / 2;
while (low <= high)
{
if (myArray[mid] == key)
{
Console.WriteLine("找到key值,其位置在: " + mid);
return;//结束检索
}
else if (myArray[mid] < key)
{
low = mid + 1;
}
else
{
high = mid - 1;
}
mid = (low + high) / 2;
}
Console.WriteLine("没有找到key值");
}
}
解决方案四:
你的mid的值在while循环里一直都没更新哦。。
解决方案五:
你的mid的值在while循环里一直都没更新哦。。