黑马程序员技术交流社区

标题: 数组折半查找的练习 [打印本页]

作者: Lady_杨    时间: 2014-9-19 22:06
标题: 数组折半查找的练习
给定一个有序的数组,如果往该数组中存贮一个元素,并保证这个数组还是有序的,那么这个元素存储的角标该如何获取。
//这是一个有序的数组,又是关于位置查找问题,自然想到数组的拆半查找。
class Arr

{
          public static void main(String [] args)
        {
                int [] arr = {7,32,55,67,75,95};       
                int index = getKeyIndex(arr,56);
                System.out.print("index="+index);
        }
       //有结果  角标   int型
      //有两个参数    哪个数组    要在该数组中存储的元素
        public static int getKeyIndex(int [] arr, int key)
        {
                int min = 0;
                int max = arr.length-1;
                int mid = (min + max)/2;       
                while(max >= min)        //这样就会有折半的可能
                {
                        mid = (min + max)>>1;     //右移一位  就是(max+min)除以2的一次幂
                        if(key > arr[mid])
                        {
                                min = mid + 1;
                        }
                        else if(key < arr[mid])
                        {
                                max = mid - 1;
                        }       
                        else
                        {
                                return mid;       
                        }
                }
                return min;
        }
}


作者: zz_job    时间: 2014-9-19 22:55
兄台。。不是说这样的贴子不让发么?
作者: 冒牌高手    时间: 2014-9-20 10:18
zz_job 发表于 2014-9-19 22:55
兄台。。不是说这样的贴子不让发么?

为啥不让发.........
作者: Lady_杨    时间: 2014-9-20 19:28
zz_job 发表于 2014-9-19 22:55
兄台。。不是说这样的贴子不让发么?

??有吗?为什么不让发呀?
作者: qq8921310    时间: 2014-9-20 22:43
你发这样的帖子完全没有意义啊。
作者: Lady_杨    时间: 2014-9-20 22:55
qq8921310 发表于 2014-9-20 22:43
你发这样的帖子完全没有意义啊。

可是这是我的学习总结啊。。。我想用这样的方式记录它。。。
作者: qq8921310    时间: 2014-9-21 00:15
首先我觉得你在论坛发东西需要有讨论性,或者分享性。如果你把这个帖子定义为分享性的话,这个代码起码要有你自己的理解东西。如果仅仅是记录的话,一个TXT 文档比在这里效果好的多。
作者: JTANISME    时间: 2014-9-21 08:38
其实发博客,或者用印象笔记记录一下可能更好!
作者: new999    时间: 2014-9-21 08:38
每天一点小进步,坚持
作者: Lady_杨    时间: 2014-9-21 08:54
JTANISME 发表于 2014-9-21 08:38
其实发博客,或者用印象笔记记录一下可能更好!

嗯嗯,好主意~:)
作者: Lady_杨    时间: 2014-9-21 08:56
new999 发表于 2014-9-21 08:38
每天一点小进步,坚持

不积跬步无以至千里。:)
作者: Lady_杨    时间: 2014-9-21 08:58
qq8921310 发表于 2014-9-21 00:15
首先我觉得你在论坛发东西需要有讨论性,或者分享性。如果你把这个帖子定义为分享性的话,这个代码起码要有 ...

嗯嗯,领教了、:)




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