隨筆-14  評論-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) 評論(4)  編輯  收藏

          評論:
          # re: java折半查找算法 2009-02-18 20:56 | 天涯浪子
          你這個代碼有錯吧 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄  回復  更多評論
            
          # 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));
          調用結果還是11。。。???,受不了了...  回復  更多評論
            
          # re: java折半查找算法 2009-06-11 11:38 | 紫宸
          拜托 搞的代碼要能跑出結果才行??!  回復  更多評論
            
          # re: java折半查找算法 2009-08-17 13:52 | Jose
          看你們的回復...我崩潰了..
          折半查找是要求在一個有序的數列當中查找
          你給人家一個無序數怎么查找???

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

          這個總可以吧?  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 巍山| 黄山市| 福建省| 陵水| 陕西省| 平乡县| 无极县| 乌兰县| 延川县| 南和县| 方山县| 龙岩市| 金湖县| 扬州市| 友谊县| 博兴县| 仁怀市| 宁国市| 芜湖市| 吴堡县| 南乐县| 怀柔区| 溆浦县| 辽中县| 搜索| 内黄县| 乌兰察布市| 文登市| 襄汾县| 陆川县| 体育| 阜新市| 清丰县| 肇庆市| 韩城市| 吐鲁番市| 陈巴尔虎旗| 九寨沟县| 洪洞县| 江西省| 来安县|