黑马程序员技术交流社区

标题: 二分查找(要求能手写出来) [打印本页]

作者: continuer    时间: 2015-12-24 18:28
标题: 二分查找(要求能手写出来)
class Demo{    public static void main(String[] args){
         int[] arr ={11,22,33,44,55,66};                                          //二分查找的前提是,数组必须是有序的。
         int index = getIndex(arr,33);                                           //定义一个整数,接收返回来的值
         System.out.println(index);                                              //打印返回来的值
    }
   public static int getIndex(int[] arr,int vule){
      int min = 0;                                                                      //定义最小值
      int max = arr.length - 1;                                                  //定义最大值
      int mid = (min + max) / 2;                                              //定义中间值
       while(arr[mid] != vule){                                                 //判断传入的值是否等于中间值,如果不等于,往下执行
           if(arr[mid] > vule){                                                    //判断传入的值是否小于中间值
                max = mid -1;                                                      //如果小于,则最大值为中间值的前面一位
            }else if(arr[mid] < vule){                                          //如果大于中间值
                min = mid +1;                                                    //最小值则改为中间值的后面一位
            }
             mid  = (min + max) / 2;                                         
             if(min > max){                                                       //如果最小值大于最大值                  
                   return -1;                                                        //返回-1
              }
        }
         return mid;                                                             //如果传入的值等于中间值返回中间值
   }
}




i'msosorryican'tstaywithyouTodayPleaselookafteryourselfreplaceofmimisyousomuch!

作者: teng13114    时间: 2015-12-24 18:41
加油,我都忘了,
作者: continuer    时间: 2015-12-24 19:27
恩 这个面试很容易考,最好能手写出来
作者: 云鱼    时间: 2015-12-24 20:22
感觉好绕啊,想一下还是可以的
作者: anuo    时间: 2015-12-24 21:28
个人感觉只要思想熟悉,到中后期代码的实现都不是什么很难得事
作者: DayBreak    时间: 2015-12-24 21:46
基础性的题。面试有数组结合递归的全排列题  小心了
作者: 风浪中    时间: 2015-12-24 21:49
DayBreak 发表于 2015-12-24 21:46
基础性的题。面试有数组结合递归的全排列题  小心了

我就遇到了
作者: continuer    时间: 2015-12-25 22:52
anuo 发表于 2015-12-24 21:28
个人感觉只要思想熟悉,到中后期代码的实现都不是什么很难得事

恩  是的,但是现在还是基础,有些东西还是要记牢的
作者: Zrz_K    时间: 2015-12-25 23:10
现在写起来还有点手生,得加强
作者: continuer    时间: 2015-12-25 23:31
Zrz_K 发表于 2015-12-25 23:10
现在写起来还有点手生,得加强

恩  多写几遍
作者: 499087476    时间: 2015-12-25 23:38
很棒,帮我复习了一边。。共勉。
作者: continuer    时间: 2015-12-25 23:48
风浪中 发表于 2015-12-24 21:49
我就遇到了

嘿嘿,其实理清楚思路了很简单的。怎么样,应该写出来了吧!
作者: continuer    时间: 2015-12-25 23:52
499087476 发表于 2015-12-25 23:38
很棒,帮我复习了一边。。共勉。

一起学习
作者: Hi.。    时间: 2015-12-27 16:57
嗯!赶紧来练练,明天就要面试了。不过,想念是miss。好像打错了。同一个单词,既是想念又是错过。哈哈~
楼主加油!
作者: Hi.。    时间: 2015-12-27 17:04
还有写完发现楼主 value 也写错了。虽然一点也都不影响。但多注意下总是好的
作者: continuer    时间: 2015-12-28 22:29
Hi.。 发表于 2015-12-27 17:04
还有写完发现楼主 value 也写错了。虽然一点也都不影响。但多注意下总是好的 ...

谢谢提醒哦,是写错了,我已经把它刚写了100遍,100遍
作者: 214652440    时间: 2015-12-28 22:31
手写好难啊
作者: continuer    时间: 2015-12-28 22:34
214652440 发表于 2015-12-28 22:31
手写好难啊

先分析清楚思路,在写代码就简单多了,这个面试题考的比较多,最好能手写出来,还有冒泡和选择都是面试考的很多的
作者: continuer    时间: 2015-12-28 22:52
Hi.。 发表于 2015-12-27 16:57
嗯!赶紧来练练,明天就要面试了。不过,想念是miss。好像打错了。同一个单词,既是想念又是错过。哈哈~
楼 ...

嗯嗯 加油
作者: 隔壁老猫    时间: 2015-12-28 23:02
复习了, 学的越多前面的基础都要淡忘了
作者: continuer    时间: 2015-12-28 23:21
隔壁老猫 发表于 2015-12-28 23:02
复习了, 学的越多前面的基础都要淡忘了

恩 是的后面的内容太多了,还是要抽点时间复习一下前面的
作者: zhou402981948    时间: 2015-12-29 00:35
先把技术分刷起来




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2