首页 > 代码库 > 140825●二分法
140825●二分法
//二分法查询 Console.Write("请输入数据个数:"); int n = Convert.ToInt32(Console.ReadLine()); int[] no = new int[n]; int x = 0, y = n - 1; //x、y分别为每次把数组二分后的最小元素、最大元素的下标 //为定义的数组赋值(该程序中数组默认按升序排列,否则需要为数组元素排序) for (int i = 0; i < n; i++) { Console.Write("输入数据{0}:", i + 1); no[i] = Convert.ToInt32(Console.ReadLine()); } Console.Clear(); //清屏 Console.Write("请输入要查询的数:"); int sel = Convert.ToInt32(Console.ReadLine()); //二分法 while (y >= x) { int zj = (x + y) / 2; //zj为x,y的中间值 if (sel == no[zj]) //判断查询值是否是本组元素的中间元素 { Console.WriteLine("第{0}个元素!", zj + 1); break; } else if (sel < no[zj]) //查询值小于中间元素,则中间元素前一位作为下组元素的最大元素 { y = zj - 1; } else if (sel > no[zj]) //查询值大于中间元素,则中间元素后一位作为下组元素的最小元素 { x = zj + 1; } } if (y < x) { Console.WriteLine("查无此数!"); }
140825●二分法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。