首页 > 其他分享 >调用一个二分法函数查找数值的下标值

调用一个二分法函数查找数值的下标值

时间:2022-12-10 12:55:33浏览次数:30  
标签:arr right int 标值 mid 二分法 查找 sizeof arrx

int binary_search(int x,int arrx[],int sz)
{
int left = 0;
//int right = (sizeof(arrx) / sizeof(arrx[0])) - 1;不能在函数里计算数组(参数)的大小
int right = sz - 1;
while (left <= right)//二分查找,left必须小于等于right
{
int mid = (left + right) / 2;//求中间元素的的下标必须在循环内的
if (x < arrx[mid])
{
right = mid - 1;
}
else if (x > arrx[mid])
{
left = mid + 1;
}
else
{
return mid;
}
}
return -1;
}

int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,0 };
int n = 7;
int sz = sizeof(arr) / sizeof(arr[0]);
int ret = binary_search(n, arr,sz);//此时数组arr传参只传了第一个元素的地址
//使函数binary_search中的arrx变成指针,所以sizeof计算的是指针的大小,和操作系统有关系,32位4个字节,64位8个字节
if (ret == -1)
{
printf("没找到");
}
else
{
printf("找到了,下标是:%d", ret);
}

return 0;
}

标签:arr,right,int,标值,mid,二分法,查找,sizeof,arrx
From: https://www.cnblogs.com/zrk-8008/p/16971413.html

相关文章

  • java从一个较大的文本文档中查找字符串
    java从一个较大的文本文档中查找字符串 publicstaticvoidfindStr(FilefileParam)throwsIOException{FileReaderfread=null;BufferedReaderbufferR......
  • SQL Server 数据库查找重复记录的几种方法
    一、查某一列(或多列)的重复值。(只可以查出重复记录的值,不能查出整个记录的信息)例如:查找id,name重复的记录:selectid,namefromdatatablegroupbyid,namehaving(count(*)......
  • 用二分法做题【通用】
    二分法通用模板题目来源:Acwing789数的范围题目描述:给定一个按照升序排列的长度为n的整数数组,以及q个查询。对于每个查询,返回一个元素k的起始位置和终止位置(位......
  • Java中的查找树和哈希表
    1、TreeSet(红黑树实现)底层使用TreeMap实现,储存结构为红黑树。构造器:publicTreeSet(){this((NavigableMap)(newTreeMap()));}add操作,把数据作为......
  • 6、查找树与平衡树
    查找树:又叫做搜索树、排序树,它规定了内部的结构是有规律的。平衡树:是查找树,且保证左右子树层数相当。 1、二叉查找树它满足左子树小于根,右子树大于根,且每一个子树都......
  • 5、顺序表查找:顺序查找与折半查找
    1、顺序查找按照顺序一个一个比较,查找需要的值。代码实现:时间复杂度:T(n)=O(n)空间复杂度:S(n)=O(1)staticintfindKey(int[]arr,intobj){for(int......
  • shell命令:linux进程按内存使用、CPU使用率排序,查找进程对应的可执行文件
    top命令下按键shift+M,对各进程按内存使用率排序按键shift+P,对各进程按CPU使用率排序按键C显示各进程的完整命令查找进程对应的可执行文件的路径:ls-l/proc/进程号/exe......
  • python 依据IP查找其所属网段
    #coding='utf-8'#依据excel表格中所提供的IP,在另一张表中查找其所属网段importpandasaspdimportIPydf=pd.read_excel('net.xlsx')col_name=df.columns.t......
  • 线性探测法的查找函数
    这个是数据结构实验五的一道题,完成一个函数函数接口定义:PositionFind(HashTableH,ElementTypeKey);其中HashTable是开放地址散列表,定义如下:#defineMAXTABLESIZE......
  • 代码随想录算法训练营第一天| 704. 二分查找、27. 移除元素
    tag:#二分#循环不变量leetcode地址:704.二分查找代码:functionsearch(nums:number[],target:number):number{ letleft=0,right=nums.length-1 //我们......