隨筆-14  評(píng)論-142  文章-0  trackbacks-0
          public  int find(int[] values, int key){
                  
                  
                  
                  
          int lowerBound = 0;
                  
                  
                  
          int upperBound = values.length -1 ;
                  
                  
          int curIn;
                  
                  
          while(true){
                      
                      curIn 
          = (lowerBound + upperBound ) / 2;
                      
                      
          if(values[curIn] == key){
                          
          return curIn;
                          
                      }
          else if(lowerBound > upperBound){
                          
                          
                          
                          
          return values.length;
                          
                      }

                      
                      
                      
          else{
                          
          if(values[curIn] < key){
                              
                              
                              
                              lowerBound 
          = curIn + 1;
                              
                          }
          else{
                              upperBound 
          = curIn - 1;
                              
                          }

                      }

                      
                      
                      
                  }

                  
                  
                  
                  
              }
          posted on 2007-09-06 18:02 liulang 閱讀(5240) 評(píng)論(4)  編輯  收藏

          評(píng)論:
          # re: java折半查找算法 2009-02-18 20:56 | 天涯浪子
          你這個(gè)代碼有錯(cuò)吧 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  回復(fù)  更多評(píng)論
            
          # re: java折半查找算法 2009-02-18 21:02 | 天涯浪子
          int[] ints = { 34, 13, 53, 64, 58, 21, 60, 78, 651, 564, 55 };
          System.out.println(find(ints, 64));
          調(diào)用結(jié)果還是11。。。。靠,受不了了...  回復(fù)  更多評(píng)論
            
          # re: java折半查找算法 2009-06-11 11:38 | 紫宸
          拜托 搞的代碼要能跑出結(jié)果才行啊!  回復(fù)  更多評(píng)論
            
          # re: java折半查找算法 2009-08-17 13:52 | Jose
          看你們的回復(fù)...我崩潰了..
          折半查找是要求在一個(gè)有序的數(shù)列當(dāng)中查找
          你給人家一個(gè)無(wú)序數(shù)怎么查找???

          int[] ints = { 2, 23, 53, 64, 158, 221, 260, 278, 651, 1564, 2355 };
          System.out.println(find(ints, 651));

          這個(gè)總可以吧?  回復(fù)  更多評(píng)論
            

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2007年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          常用鏈接

          留言簿(3)

          隨筆分類

          文章分類

          相冊(cè)

          最新隨筆

          搜索

          •  

          積分與排名

          • 積分 - 153422
          • 排名 - 397

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 确山县| 迭部县| 称多县| 繁峙县| 陵川县| 平南县| 河津市| 黑山县| 万荣县| 梅河口市| 永善县| 漳浦县| 涟水县| 和平县| 万山特区| 泽库县| 墨竹工卡县| 汤阴县| 宁德市| 合肥市| 大兴区| 乌苏市| 纳雍县| 茌平县| 当涂县| 敦化市| 徐汇区| 弥渡县| 葫芦岛市| 玉溪市| 荥阳市| 怀仁县| 巩义市| 通海县| 罗城| 峡江县| 合阳县| 特克斯县| 屯留县| 桦川县| 肇州县|