首页 > 其他分享 >二分查找

二分查找

时间:2023-03-26 20:00:41浏览次数:32  
标签:二分 sz arr int ret 查找 printf 两数

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

//int main()
//{
//	int a;
//	int b;
//	printf("请输入两个整数:\n");
//	scanf("%d%d", &a, &b);
//	float c = (float)a / b;
//	printf("两数之和为a+b=%d\n", a + b);
//	printf("两数之差为a-b=%d\n", a - b);
//	printf("两数之积为a*b=%d\n", a * b);
//	printf("两数之商为c=%f\n", c);
//	return 0;
//}

int Binary_search(int arr[],int ret, int sz)
{
	int left = 0;
	int right = sz;
	int z = sz / 2;

	while (left <= right)
	{
		z = (right + left) / 2;
		if (ret < arr[z])
		{
			right = z-1;
		}
		else if (ret > arr[z])
		{
			left = z+1;
		}
		else
		{
			return z;
	    }
	}
	return -1;
}

int main()
{
	int ret;
	int sz;
	int g;
	int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
	sz = sizeof(arr) / sizeof(arr[0]);

	printf("请输入一个数字:  \n");
	scanf("%d", &ret);
	if (-1 == Binary_search(arr,ret,sz))
	{
		printf("没找到\n");
	}
	else
	{
		g = Binary_search(arr, ret, sz);
		printf("找到了,下标是:%d\n",g );
	}

	return 0;
}



标签:二分,sz,arr,int,ret,查找,printf,两数
From: https://blog.51cto.com/u_15906483/6150716

相关文章

  • 为什么HashMap查找比List快很多?
    做两数之和这道题目时,引发了一个思考:为什么两者运行时间相差如此之大???好残忍,我List比你HashMap到底差在哪****于是我一顿查资料....战犯哈希算法登场哈希算法......
  • 算法—二分法详解
    二分法详解目录二分法详解1.二分法2.引论:猜数游戏3.整数域二分1、在单调递增序列中找x或者x的后继2、在单调递增序列中查找x或者x的前驱3.简易二分模板4.浮点数二......
  • 二分查找
    #include<bits/stdc++.h>usingnamespacestd;intmain(intargc,char**argv){intindex=1;srand(time(0));intnum=rand()%100;do{......
  • 二分查找--找数字
    #include<iostream>#include<cstdlib>#include<ctime>usingnamespacestd;intmain(intargc,char**argv){intx;srand(time(0));do{int......
  • 【codevs3119】高精度开根号(二分答案)
    problem高精度开根号输入一个数求平方根solution二分答案,如果mid*mid>原数就去找更小的,反之找更大的。精度小于二忽略不计?用到高精加,高精乘,加低精,除低精,比较大小这几个......
  • HJ27_查找兄弟单词——哈希表查找
    思路:#先找出兄弟单词,按字典排序;输出第k个字典序单词,若没有则不用输出。关键是理解题目兄弟单词的定义。可通过测试案例明确兄弟单词单词定义。如刚开始我的check,只是用se......
  • hdu 1853 Cyclic Tour(费用流OR二分图最佳匹配,5级)
    O- CyclicTourTimeLimit:1000MS     MemoryLimit:65535KB     64bitIOFormat:%I64d&%I64uSubmit StatusSystemCrawler (2013-05-30)......
  • 力扣-数组-二分查找704
        1classSolution(object):2defsearch(self,nums,target):3"""4:typenums:List[int]5:typetarget:int6......
  • P1570 KC 喝咖啡(小数二分)
    P1570KC喝咖啡题意:给定调料种数\(n\)和能加入的调料数\(m\),以及每种调料的美味度\(v_i\),消耗的时间\(c_i\)。请选择单位时间的美味度最大的咖啡。分析:\(t=\fra......
  • P1163 银行贷款(小数二分)
    P1163银行贷款分析变量命名如下:\(n\)表示贷款的原值,\(m\)表示每月支付的分期付款金额,\(k\)表示分期付款还清贷款所需的总月数。\(p\)表示贷款的月利率第......