A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Lady_杨 中级黑马   /  2014-9-19 22:06  /  1555 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

给定一个有序的数组,如果往该数组中存贮一个元素,并保证这个数组还是有序的,那么这个元素存储的角标该如何获取。
//这是一个有序的数组,又是关于位置查找问题,自然想到数组的拆半查找。
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;
        }
}

11 个回复

倒序浏览
兄台。。不是说这样的贴子不让发么?
回复 使用道具 举报
zz_job 发表于 2014-9-19 22:55
兄台。。不是说这样的贴子不让发么?

为啥不让发.........
回复 使用道具 举报
zz_job 发表于 2014-9-19 22:55
兄台。。不是说这样的贴子不让发么?

??有吗?为什么不让发呀?
回复 使用道具 举报
你发这样的帖子完全没有意义啊。
回复 使用道具 举报
qq8921310 发表于 2014-9-20 22:43
你发这样的帖子完全没有意义啊。

可是这是我的学习总结啊。。。我想用这样的方式记录它。。。
回复 使用道具 举报
首先我觉得你在论坛发东西需要有讨论性,或者分享性。如果你把这个帖子定义为分享性的话,这个代码起码要有你自己的理解东西。如果仅仅是记录的话,一个TXT 文档比在这里效果好的多。
回复 使用道具 举报
JTANISME 来自手机 中级黑马 2014-9-21 08:38:22
8#
其实发博客,或者用印象笔记记录一下可能更好!
回复 使用道具 举报
new999 中级黑马 2014-9-21 08:38:28
9#
每天一点小进步,坚持
回复 使用道具 举报
JTANISME 发表于 2014-9-21 08:38
其实发博客,或者用印象笔记记录一下可能更好!

嗯嗯,好主意~:)
回复 使用道具 举报
new999 发表于 2014-9-21 08:38
每天一点小进步,坚持

不积跬步无以至千里。:)
回复 使用道具 举报
qq8921310 发表于 2014-9-21 00:15
首先我觉得你在论坛发东西需要有讨论性,或者分享性。如果你把这个帖子定义为分享性的话,这个代码起码要有 ...

嗯嗯,领教了、:)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马