/*
* 需求:如果往有序的数组中插入一个元素并继续保证有序,问如何插入???
* 既然是有序的数组,而且是找位置,就利用二分查找法。
*/
public class Test09 {
public static void main(String[] args) {
int [] arry = {2,5,6,8,24,67};
//如果能插入则s为其插入的角标,但是数组建立后长度是固定的。
int s = binarySearch(arry, 9);
System.out.println(s);
}
//二分查找法
public static int binarySearch(int [] arry,int key) {
int min = 0;
int max =arry.length-1;
while(min<=max) {
int mid = (min+max)/2;
if(key>arry[mid]) {
min = mid + 1;
}else if(key<arry[mid]) {
max = mid - 1;
}else {
return mid;
}
}
return min;
}
}
需求:如果往有序的数组中插入一个元素并继续保证有序,问如何插入???
猜你喜欢
转载自blog.csdn.net/weixin_43117449/article/details/82902134
今日推荐
周排行