[Java] JAVA 二分发查找方法的实现 →→→→→进入此内容的聊天室

来自 , 2020-04-07, 写在 Java, 查看 104 次.
URL http://www.code666.cn/view/47a65822
  1. /**
  2.          * 二分发查找方法的实现
  3.          * @param a             要查找的目标整型数组
  4.          * @param num   要查找的(整)数
  5.          * @return              查找到的结果(整数)
  6.          */
  7.         public int binarySearch(int[] a, int num) {
  8.                 Arrays.sort(a);                          //一定要排序后才能实现二分法查找
  9.                 int start = 0;                           //开始元素的索引
  10.                 int end = a.length - 1;          //结束元素的索引(数组内元素的索引是当前长度小一位)
  11.                 int mid = (start + end) / 2; //中间元素的索引=(开始元素的索引+结束元素的索引)/2,这是死的所以写死没关系
  12.                 while(num!=a[mid]){                      //用while循环判断当要找的数字不是当前数组的中间元素时,继续查找
  13.                         if(num<a[mid]){                  //如果要找的数字小于当前数组的中间元素,即以中间索引的元素为分界
  14.                                 end=mid-1;               //当前数组中的结束元素索引递减1
  15.                         }else{                                   //如果要找的数字大于当前数组的中间元素
  16.                                 start=mid+1;             //当前数组中的开始元素索引递增1
  17.                         }
  18.                         mid=(start + end) / 2;   //上面的田间判断完后,重新计算中间元素的索引
  19.                 }
  20.                 return a[mid]; //到这一步说明要找的数字已经找到了,所以返回这个数字
  21.                 /*总结:
  22.                  * 将要查找的数组排序,将数组以中间元素为分隔成两组元素,如果中间元素就是要找的数则返回,
  23.                  * 如果不是则判断是否比中间元素大,大则分到右手边的数组,小则分到左手边的数组,
  24.                  * 分完后要以当前数组为主,重新分配开始索引,中间索引和结束索引,
  25.                  * 以此类推以循环为条件最终得到要查找的数。
  26.                  * */
  27.         }//源代码片段来自云代码http://yuncode.net
  28.                        

回复 "JAVA 二分发查找方法的实现"

这儿你可以回复上面这条便签

captcha