黑马程序员技术交流社区
标题:
小白请教一个数组问题
[打印本页]
作者:
iverson
时间:
2015-5-7 10:36
标题:
小白请教一个数组问题
public class ArrayHalfSort {
public static int getIndex(int[] arr,int key){
int min=0,max=arr.length-1,mid;
while(min<=max){
mid=(min+max)>>1;
if(key>arr[mid])
min=mid+1;
else if(key<arr[mid])
max=mid-1;
else return mid;
}
return min;
}
public static void main(String[] args) {
int[] arr={2,4,5,7,9,32,56};
int index=getIndex(arr, 12);
System.out.println("index= "+index);
//
printArray(arr);
}
public static void printArray(int[] arr){
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if(i!=arr.length-1)
System.out.print(arr[i]+", ");
else System.out.println(arr[i]+"]");
}
}
}
看毕老师视频讲的折半查询一个数后在一个数组中插入该数。可是不会了。。。请教一下,该怎么做才能不覆盖那个角标位的数?
作者:
KK要有光
时间:
2015-5-7 10:52
在数组这一块,老师不是讲的插入吧,而是讲的获取要插入元素的角标位置,即index,因为数组一旦定义并初始化,是不能做增删的。此时你的代码结果应该是返回5吧。
作者:
敢舍弃么
时间:
2015-5-7 14:39
你获取该数所在的角标之后可以重新new一个数组,将原来的数组遍历进新数组,并在遍历时在指定角标插入你要的数
作者:
iverson
时间:
2015-5-8 16:11
敢舍弃么 发表于 2015-5-7 14:39
你获取该数所在的角标之后可以重新new一个数组,将原来的数组遍历进新数组,并在遍历时在指定角标插入你要 ...
貌似确实得新建一个数组,再遍历一次。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2