用数组查找某个整数

任务概述

查找某个整数 定义一个长度为 10 的整型数组 nums ,循环输入 10 个整数。
然后将输 入一个整数,查找此整数,找到输出下标, 没找到给出提示。

代码实现

import java.util.Scanner;
public class Demo1 {
	public static void main(String[] args) {
	     Scanner sc= new Scanner(System.in);
		//定义一个长度为 10 的整型数组 nums
	     int [] nums =new int [] {1,4,6,8,10,32,45,66,98,100};
	   
	     //通过for循环 遍历输出数组中10个整数
	     for(int i = 0;i<nums.length;i++) {
	    	  System.out.print(nums[i]+" ");
	     }
	     System.out.println("请输入你要查找的数字:");
	     //通过键盘录入,找出需要查找的数字
	
	     int num=sc.nextInt();
	     //定义一个最小范围的下标索引
	     int minIndex=0;
	     //定义一个最大范围的下标索引
	     int maxIndex=nums.length-1;
	   //定义一个中间范围的下标索引
	     int centerIndex=(minIndex+maxIndex)/2;
	     //通过while循环找出该数
	     while(true) {
	    	 if(nums[centerIndex]>num) {//如果最大索引的数比需要找的数大
	    		 maxIndex=centerIndex-1;//最大索引指向中间索引的左边一个
	    	 }
	    	 else if(nums[centerIndex]<num) {//如果最小索引的数比需要找的数小
	    		 minIndex=centerIndex+1;//最小索引指向中间索引的右边一个
	    	 }
	    	 else {//如果中间索引的数等于需要找的数
	    		 break;//找到后 返回
	    	 }
	    	 if(minIndex>maxIndex) {
	    		 centerIndex=-1;
	    		
	    		 break;
	    	 }
	    	 centerIndex=(minIndex+maxIndex)/2;
	    	 
	     }
        	  System.out.println("需要找的数的位置在"+centerIndex);
          }
	}

运行结果

1 4 6 8 10 32 45 66 98 100 请输入你要查找的数字:
100
需要找的数的位置在9

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小高求学之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值