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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

/*
需求:已知一个有序数组,和一个已知整数,如果将此整数插入数组中
问:插入到哪个位置数组保持有序?
   arr={1,5,7,19,21,35,45,85}   要插入的数位20

*/
class Zheban
{
        public static void main(String[] args)
        {
                int [] arr={1,5,7,19,21,35,45,85};

                System.out.println(halfcha(arr,21));
        }

    public static int halfcha(int[] arr,int key)
        {
                int min=0,max=arr.length-1,mid;
                for (;min<=max ; )
                {
                        mid=(min+max)/2;
                        if (key<arr[mid])
                        {
                                max=mid-1;
                        }
                        else if (key>arr[mid])
                        {
                                min=mid+1;
                        }
                        else
                                return mid;

                }
                return min;
       
       
        }


}

1 个回复

倒序浏览
xbin0316@qq.com 来自手机 初级黑马 2015-12-17 23:34:49
沙发
我是:新建一个数组循环把原数组的值赋给新数组,直到该插入的下标,这个时候插入要插入的值,后面继续把原数组[i-1]赋值给新数组[i],最后原数组=新数组,搞定。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马