黑马程序员技术交流社区

标题: 新写的二分法查找数组中的元素 [打印本页]

作者: 宁少    时间: 2015-10-19 22:28
标题: 新写的二分法查找数组中的元素
public class Day13_Array {
        public static int getIndex(int[] arr, int value) {
                int min = 0;
                int max = arr.length - 1;
                int mid = (min + max) / 2;
                if (arr[value] < min)
                        return -1;
                if (arr[value] > max)
                        return -1;
               
                while(arr[value]!=mid) {
                        if(arr[mid] < value) {
                        max = mid - 1;
                }else if(arr[value]>value){
                        min=mid+1;       
                }
                        mid=(min+max)/2;       
                }
                return mid;
        }

}

作者: 发发那个发    时间: 2015-10-19 22:31
赞赞赞!!!
作者: 然子    时间: 2015-10-19 22:35
太优秀了!!!!
作者: 空山新雨    时间: 2015-10-19 22:35
+10086,受益匪浅!!!!!!!!!!!!!
作者: 乱世心    时间: 2015-10-19 22:39
赞一个巨支持
作者: 李金龙2015    时间: 2015-10-19 22:49
不错,顶一个。。。
作者: 宁少    时间: 2015-10-19 22:50
李金龙2015 发表于 2015-10-19 22:49
不错,顶一个。。。

嘻嘻,我也是没办法 了,醉了
作者: 宁少    时间: 2015-10-19 22:51
嘻嘻,我也是没办法了,醉了,醉了,,,,
作者: tink    时间: 2015-10-19 22:57
不错,顶一个。。。
作者: 秦旭辉    时间: 2015-10-19 23:08
赞一个  不错 顶一个
作者: 奔跑的小红帽    时间: 2015-10-20 00:35
//对数组进行折半查找 1
           public static int  find(int[] arr,int key){
                        int min=0;
                        int max=arr.length-1;
                        int mid=(min+max);
                        while(key!=arr[mid])
                   {
                                if(key>arr[mid])
                                        min=mid+1;
                                else if(key<arr[mid])
                                        max=mid-1;
                            if (max<min){
                                        return -1;
                                }
                                mid=(max+min)/2;
                                         
                        }
                                return mid;
           }
           //对数组进行折半查找 2
           public static int find_2(int[] arr,int key){
                        int min=0;
                        int max=arr.length-1;
                       
                        while(min<=max){
                                int mid=(min+max)/2;
                                if(key>arr[mid])
                                        min= mid+1;
                                else if(key<arr[mid])
                                        max=mid-1;
                                else
                                        return mid;
                        }
                        return -1;
           }
作者: 宁少    时间: 2015-10-21 19:24
发发那个发 发表于 2015-10-19 22:31
赞赞赞!!!

转黑马币
作者: 宁少    时间: 2015-10-21 19:25
然子 发表于 2015-10-19 22:35
太优秀了!!!!

一般般,转黑马币
作者: 宁少    时间: 2015-10-21 19:26
空山新雨 发表于 2015-10-19 22:35
+10086,受益匪浅!!!!!!!!!!!!!

转黑马币
作者: 宁少    时间: 2015-10-21 19:27
乱世心 发表于 2015-10-19 22:39
赞一个巨支持

黑马币,黑马币
作者: 宁少    时间: 2015-10-21 19:29
tink 发表于 2015-10-19 22:57
不错,顶一个。。。

黑马币,黑马币
作者: 宁少    时间: 2015-10-21 19:30
奔跑的小红帽 发表于 2015-10-20 00:35
//对数组进行折半查找 1
           public static int  find(int[] arr,int key){
                        int min=0;

太崇拜你了
作者: 宁少    时间: 2015-10-21 19:31
奔跑的小红帽 发表于 2015-10-20 00:35
//对数组进行折半查找 1
           public static int  find(int[] arr,int key){
                        int min=0;

送点马币吧,大神
作者: ppaapc    时间: 2015-10-21 19:51
楼主确实666




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