黑马程序员技术交流社区

标题: 折半查询,插入某数值的实例 [打印本页]

作者: WaterTheGreat    时间: 2015-12-17 23:14
标题: 折半查询,插入某数值的实例
/*
需求:已知一个有序数组,和一个已知整数,如果将此整数插入数组中
问:插入到哪个位置数组保持有序?
   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;
       
       
        }


}

作者: xbin0316@qq.com    时间: 2015-12-17 23:34
我是:新建一个数组循环把原数组的值赋给新数组,直到该插入的下标,这个时候插入要插入的值,后面继续把原数组[i-1]赋值给新数组[i],最后原数组=新数组,搞定。




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