二分法简单代码

//针对已经排序好的数组进行查找(对上面代码进行的改进)
	public static boolean binarySearch(int[]array,int target){
		int left=0;
		int right=array.length-1;//下标
		int mid=(left+right)/2;
		while(array[mid]!=target&&right>left){
			System.out.println("进来"+"中间值为:"+array[mid]);
			if(array[mid]>target){
			  right=mid-1;
			}else if(array[mid]<target){
				 left=mid+1;
		    }
			
			mid=(left+right)/2;
			//判断在缩小范围后,新的left或者right是否会将target排除
			if(array[right]<target){
			  break;//若缩小后right比target小,即target不在数组中
			}else if(array[left]>target){
			    break;//若缩小后left比target大,即target不在数组中
			}
		}
		return(array[mid]==target);
	}




//main方法测试
public static void main(String[] args) {
		int a[]= {1,2,5,6,7};
		int target=2;
		/**
		 * 二分法
		 */
		/*boolean c=binarySearch(a,target);
		System.out.println("c="+c);*/
		
	}

希望对你有所帮助!

猜你喜欢

转载自blog.csdn.net/qq_37272886/article/details/83110456