C#二分查找算法
答案:1 悬赏:70 手机版
解决时间 2021-11-29 16:55
- 提问者网友:黑米和小志
- 2021-11-28 22:57
C#二分查找算法
最佳答案
- 五星知识达人网友:青尢
- 2021-11-28 23:34
二分查找的基本思想是:(设R[low..high]是当前的查找区间)
(1)首先确定该区间的中点位置:mid=(low+high)/2
(2)然后将待查的K值与R[mid].key比较:若相等,则查找成功并返回此位置,否则须确定新的查找区间,继续二分查找
// Source:
public int search(int[] q)
{
int i, low = 0, high = q.Length - 1, middle;
Console.Write("请输入想要查找的数字:");
i=int.Parse(Console.ReadLine());
while (low <= high)
{
middle = (low + high) / 2;
if (i == q[middle])return i;
if (i < q[middle])high = middle - 1;
else low = middle + 1;
}
throw new Exception("数组中不存在这个数。");
}
(1)首先确定该区间的中点位置:mid=(low+high)/2
(2)然后将待查的K值与R[mid].key比较:若相等,则查找成功并返回此位置,否则须确定新的查找区间,继续二分查找
// Source:
public int search(int[] q)
{
int i, low = 0, high = q.Length - 1, middle;
Console.Write("请输入想要查找的数字:");
i=int.Parse(Console.ReadLine());
while (low <= high)
{
middle = (low + high) / 2;
if (i == q[middle])return i;
if (i < q[middle])high = middle - 1;
else low = middle + 1;
}
throw new Exception("数组中不存在这个数。");
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯