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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhoubinjian 金牌黑马   /  2016-3-20 18:51  /  396 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

//需求:将一个元素插入到一个有序的数组当中,还要保证该数组是有序的,获取该元素在的位置。
class Zheban
{
        public static void main(String[] args)
        {
                int[] arr=new int[]{3,8,9,12,43,65,78};
                int mun=getmun(arr,10);
                System.out.println("jiaobiao="+mun);
        }
        public static int getmun(int[] arr,int key)
        {
                int min,mid,max;
                min=0;
                max=arr.length-1;
                mid=(min+max)/2;
                while(key!=arr[mid])
                {       
                        if(key>arr[mid])
                        {
                                min=mid+1;
                        }
                        else if(key<arr[mid])
                        {
                                max=mid-1;
                        }
                        if(min>max)
                                return min;//返回最小角标的值为该元素的位置
                        mid=(min+max)/2;

                }
                  return mid;
        }
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马