二分查找

代码部分:

 int sy(int[] arra,Integer temp) {
		// 第一步:将数组排序(冒泡排序)
		for (int i = 0; i < arra.length-1; i++) {
			for (int j = 0; j < arra.length-1-i; j++) {
				if(arra[j] > arra[j+1]) {
					int index = arra[j];
					arra[j] = arra[j+1];
					arra[j+1] = index;
				}
			}
		}
		// 定义左索引
		int begin = 0;
		// 定义右索引
		int end = arra.length-1;
		// 定义循环
		while(begin <= end) {
			// 定义查询中间索引
			int mid = (end + begin)/2;
			// 如果数组中间索引定义的值和要查询的值相等,则直接返回中间索引
			if(arra[mid] == temp) {
				return mid;
			}
			// 如果数组中间索引定义的值大于要查询的值时,则证明中间索引右边的所有值都大于要查询的值
			// 所以修改右索引位置为中间索引-1
			else if(arra[mid] > temp) {
				end = mid - 1;
			}
			// 如果数组中间索引定义的值小于要查询的值时,则证明中间索引左边的所有值都小于要查询的值
			// 所以修改左索引位置为中间索引+1
			else if(arra[mid] < temp) {
				begin = mid + 1;
			}
		}
		
		return -1;
	}

测试与结果:

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值