java-在数组中,用二分法查找一个数。返回下标,找不到则返回-1。

编写程序,完成下列功能:

(1)输入 20 个整数到数组中;

(2)对 20 个数按从大到小的顺序排序,输出排序后的数组;

(3)输入一个整数 x;

(4)在数组中,用二分法查找 x。如果找到了输出 x 在数组中的下标,找不到输出-1。

package labreport4;
import java.util.Scanner;
public class work4_4 {
	//输出数组
	static void display(int a[]) {
		for(int i=0;i a[mid])//比中间的数大,x不在右半部分
				right = mid - 1;//查找范围下限移到中间的左边
			else if (x < a[mid])//比中间的数小,x不在左半部分
				left = mid + 1;//查找范围上限移到中间的右边
			else //x==a[mid],找到了
				return mid;
		}
		return -1; //找不到
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int a[]=new int[5];
		int j=0;
		Scanner input=new Scanner(System.in);
		for(j=0;j

 java-在数组中,用二分法查找一个数。返回下标,找不到则返回-1。_第1张图片

二分查找是重点,首先确定查找的上下限,然后用中间下标数据与被找数作比较,如果中间下标数据较大,则最大下标等于中间下标-1;中间下标数据较小,则最小下标等于中间下标+1。直至两数相等,则返回中间下标。如若最小下标 > 最大下标,说明数据不存在,则返回-1。

你可能感兴趣的:(Java,java,eclipse,算法)