需求:如果往有序的数组中插入一个元素并继续保证有序,问如何插入???

/*
 * 需求:如果往有序的数组中插入一个元素并继续保证有序,问如何插入???
 * 既然是有序的数组,而且是找位置,就利用二分查找法。
 */
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