二分法检索问题

问题描述

写了个图中的代码(在控制台),用二分法检索数组元素,调试时什么都不显示,是怎么回事?

解决方案

解决方案二:
int[]myArray=newint[10]{13,15,23,25,45,46,57,58,78,79};intkey=78;intlow=0,high=9;while(low<=high){intmid=(low+high)/2;//要放到while循环的里面,让mid每次折半if(myArray[mid]==key){Console.WriteLine("找到key值,其位置在:"+mid);break;//一定要加break跳出while循环,否则死循环}elseif(myArray[mid]<key){low=mid+1;}else{high=mid-1;}}Console.Write("没有找到key值");

解决方案三:
该回复于2015-07-26 23:45:40被版主删除
解决方案四:
在ask回答你了。
解决方案五:
分析啊,没输出就是陷入了死循环喽
解决方案六:
就是low永远小于等于high,你的low是mid+1,然而你的mid在循环内是不变的,所以low也不会变啊,high也一样,所以死循环没输出
解决方案七:
你死循环了...只要你自己调试一下看一下每一步程序是怎么运行的就会知道为什么
解决方案八:
从语句分析可以知道错误在哪里,应该在哪里修改,因为if(myArray[mid]==key)判断语句需要其中的mid随循环变化,因此,在一个循环判断后应该使mid值朝目标方向靠近变化,所以,应该修改如下语句即可:elseif(myArray[mid]<key){//low=mid+1;mid=mid+1;}else{//high=mid-1;mid=mid-1;}
解决方案九:
断点调试,看到底走进哪个分支里去了
解决方案十:
你写的这种思路是在数组已经排序的情况时使用的,假如数组没有排序的情况,应该如何?有两种方案,1从头和尾开始分别向中间进行,2从中间分别向头和尾进行,就可以使用改变low=?和high=?这种思路了。
解决方案十一:
实测输出找到key值,其位置在:8你先在最后一行加上Console.ReadLine();避免程序执行完没等看清结果就退出了如果还是啥反应都没有,查看项目属性,看是否并不是控制台程序而是winform程序,那样当然不会有控制台窗口出现

时间: 2024-10-26 05:31:12

二分法检索问题的相关文章

c++-泛型算法中find和binary_sreach有什么区别

问题描述 泛型算法中find和binary_sreach有什么区别 有序集合是不是只有升序和降序? binary_sreach使用的是什么搜索方式? 还有其他的搜索方式吗? 解决方案 一般C++有序集合就是升序或者降序的 binary_sreach就是二分法检索,经过一次比较就缩小一半的检索区间,所以效率比find高 解决方案二: 二分查找,每次都是取中间值比较,这样就可以确定查找值的范围.这个使用的前提就是已经排序过了.

PL/SQL学习笔记-索引

一:索引描述一个索引可以由一个或多个列组成对列设置索引其实就是对列的内容按一定的方式进行排序检索数据的时候,检索排过序的数据检索到最后一个有效数据之后就跳出检索这样就不必进行全表扫描了,同时可以应用很多算法提高检索效率数据库多用二分法检索数据 二:索引分类1  唯一索引(Unique)不允许列内有重复的值2  非唯一索引(normal)允许列内有重复的值(默认创建非唯一索引)3  位图索引(bitmap)这类索引和上两类索引的实现逻辑不通 三:各类索引的应用场合当你的列中有很多重复的数据时适合建

c语言一道检索的题目求助!

问题描述 c语言一道检索的题目求助! 直接检索肯定会超时了,但我实在不知道什么算法能解决这个问题,求助各位大神! 解决方案 用字典树,遍历一遍,将数据添加到字典树,然后查询.内存开销8000字节以内,时间开销N+LogN 解决方案二: 如果不算数据输入的时间,2秒之内完成是没有任何问题的,即使是m=n=1000000的情况,估计0.5秒就可以完成,基本思路如下:1.使用一个int(4字节)的低三位来存储一个三元组:使用两个int数组分别存储n个三元组和m个三元组,内存不超过8M2.对n个int进

php二分法在IP地址查询中的应用_php技巧

数据库大概存储几十万条IP记录,记录集如下: +----------+----------+------------+---------+---------+--------+--------+  | ip_begin | ip_end   | country_id | prov_id | city_id | isp_id | netbar |  +----------+----------+------------+---------+---------+--------+--------+ 

php检索或者复制远程文件的方法

 这篇文章主要介绍了php检索或者复制远程文件的方法,涉及php使用copy函数操作文件的技巧,具有一定参考借鉴价值,需要的朋友可以参考下     本文实例讲述了php检索或者复制远程文件的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 <?php if(!@copy('http://someserver.com/somefile.zip','./somefile.zip')) { $errors= error_get_last(); echo &quo

lucene 搜索-lucene对文件名、文件路径进行索引,搜索的时候不能检索出来

问题描述 lucene对文件名.文件路径进行索引,搜索的时候不能检索出来 如题,lucene对文件名.文件路径都进行了索引,因为文件名.文件路径都包含特殊字符斜杠(/)和点(.),导致搜索的时候输入文件名或者路径,都无法搜索,使用/对字符进行转义也不行,请帮忙. 部分代码如下: protected Document getDocument(File f) throws IOException { Document doc = new Document(); doc.add(new Field("

java-用过LIRE的朋友,请问在建索引的时候能额外添加文本信息并在检索时可同时加入文本条件吗?

问题描述 用过LIRE的朋友,请问在建索引的时候能额外添加文本信息并在检索时可同时加入文本条件吗? 我为图像建立索引的时候,想对图像进行手动的分类,需要加入一些文字作为标签,然后在检索的时候可以加入标签文字以实现在一定范围内的图像检索. 我在建索引的时候,可以往DocumentBuilder创建的Document中添加额外的Field,这是没问题的.但在检索的时候,不知道如何为ImageSearcher添加文本条件,也没有发现提供这样的方法,请问有办法实现我的需求吗?

使用Lucene索引和检索POI数据

1.简介 关于空间数据搜索,以前写过<使用Solr进行空间搜索>这篇文章,是基于Solr的GIS数据的索引和检索. Solr和ElasticSearch这两者都是基于Lucene实现的,两者都可以进行空间搜索(Spatial Search),在有些场景,我们需要把Lucene嵌入到已有的系统提供数据索引和检索的功能,这篇文章介绍下用Lucene如何索引带有经纬度的POI信息并进行检索. 2.环境数据 Lucene版本:5.3.1 POI数据库:Base_Station测试数据,每条数据主要是I

java-AlertDialog检索用户信息

问题描述 AlertDialog检索用户信息 我想要获取AlertDialog中的text字符串,没实现: private void showAddSectorDlg() { if (BuildConfig.DEBUG) { Log.i(Constants.TAG_ACTSECTORS, "showAddSectorDialog() called."); } LayoutInflater inflater = getLayoutInflater(); new AlertDialog.B