首页 > 其他分享 >二分查找(函数)

二分查找(函数)

时间:2023-06-26 19:33:01浏览次数:33  
标签:二分 sz arr right 函数 int ret 查找 left

#include <stdio.h>

int binary_search(int arr[], int k,int sz)
{
	int left = 0;
	int right = sz - 1;
	while (left <= right)
	{
		int mid = (left + right) / 2;
		if (arr[mid] > k)
		{
			right = right - 1;
		}
		else if (arr[mid] < k)
		{
			left = left + 1;
		}
		else
		{
			return mid;
		}
	}
	return -1;
}

int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int k = 17;
	int sz = sizeof(arr) / sizeof(arr[0]);
	int ret=binary_search(arr, k, sz);
	if (ret != -1)
	{
		printf("找到了,下标:%d\n", ret);
	}
	else
		printf("找不到了\n");
	return 0;
}

二分查找(函数)_二分查找

标签:二分,sz,arr,right,函数,int,ret,查找,left
From: https://blog.51cto.com/u_16168351/6557106

相关文章

  • 二分查找(函数)
    #include<stdio.h>intbinary_search(intarr[],intk,intsz){ intleft=0; intright=sz-1; while(left<=right) { intmid=(left+right)/2; if(arr[mid]>k) { right=right-1; } elseif(arr[mid]<k) { ......
  • Pytorch | `torch.multiprocessing.spawn` 函数的使用
    torch.multiprocessing.spawn是PyTorch中用于启动多进程的函数,可以用于分布式训练等场景。其函数签名如下:torch.multiprocessing.spawn(fn,args=(),nprocs=1,join=True,daemon=False,start_method='spawn',)参数:fn(function)–函数被称......
  • 素数的判断(函数)
    #include<stdio.h>#include<math.h>intis_prime(intn){ intj=0; for(j=2;j<=sqrt(n);j++) { if(n%j==0) return0; } return1;}intmain(){ inti=0; for(i=101;i<=200;i+=2) { if(is_prime(i)==1)......
  • 【js学习笔记八】如何写一个简单的前端回调函数
     目录前言导语代码部分 运行结果总结前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷导语书写一......
  • 2000-2050的闰年(函数)
    #include<stdio.h>is_leap_year(inty){ if((y%4==0&&y%100!=0)||(y%400==0)) return1; else return0;}intmain(){ intyear=0; printf("2000-2050闰年:"); for(year=2000;year<=2050;year++) { i......
  • python函数的高阶使用
    一:*强制位置传参和/分界线强制位置参数可以使用*进行标记,*后面的参数将成为强制位置参数,它们必须按照位置传递给函数,而不能使用关键字传递。/用于标记位置参数和关键字参数之间的分界线,即/之前的参数只能通过位置传递,/之后的参数可以通过位置或关键字传递。示例1:使......
  • sort函数
    在平常的排序过程中我么或许常常会犯难,遇到普通的数组或许还好,但是像结构体这样的数据多了难免会有些麻烦,我查阅资料之后找到了一个函数这个函数是库里面自带的只需要头文件#include<algorithm>下面讲讲详细用法,首先sort(a,a+n,cmp)它里面有三个变量a代表我们的结构体的简称,这......
  • 34. 在排序数组中查找元素的第一个和最后一个位置
    给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回[-1,-1]。你必须设计并实现时间复杂度为O(logn)的算法解决此问题。示例1:输入:nums=[5,7,7,8,8,10],target=......
  • JavaScript学习 -- 高阶函数
    一、普通函数比较大小写声明函数判断大于或小于数组中的某个数letarr=[1,2,3,4,5,6,7,8,9]functionaiyou(a){for(leti=0;i<arr.length;i++){if(arr[i]>a){console.log(arr[i])}}console.log("****************************")}functionbucuo(a){for(......
  • 两数交换(函数)
    #include<stdio.h>swap(int*pa,int*pb){ inttmp=0; tmp=*pa; *pa=*pb; *pb=tmp;}intmain(){ inta=10; intb=20; printf("a=%d,b=%d\n",a,b); swap(&a,&b); printf("a=%d,b=%d\n",a,b); return......