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

二分查找

时间:2023-02-27 16:33:16浏览次数:36  
标签:二分 arr right int mid 查找 printf left

#include<stdio.h>

int main() {
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int left = 0;
int max = sizeof(arr) / sizeof(arr[0]);
int right = max - 1;
int x = 0;
printf("输入你想要查询的数值:");
scanf_s("%d", &x);
while (left <= right) {
int mid = (left + right) / 2;
if (arr[mid] == x) {
printf("%d在数组中第%d个位置上", x, mid + 1);
break;
}
else if (arr[mid] < x) {
left = mid + 1;
}
else {
right = mid - 1;
}
}
if (left > right) {
printf("未能找到该数值");
}
return 0;
}

标签:二分,arr,right,int,mid,查找,printf,left
From: https://blog.51cto.com/u_13606048/6088627

相关文章

  • 正则表达式大全(持续更新)|| 正则查找中文 || 正则查找注释
    背景:项目中需要快速找到所有的中文翻译成英文的时候,又或者要把所有注释的内容删掉,再或者要针对标点的查询。这里为大家总结了一些常用的正则表达式,和使用方法;使用方......
  • (非函数方法)查找有序数组中x的位置(二分/折半)
    #include<stdio.h>intmain(){intx=0;intarr[]={1,2,3,4,5,6,7,8,9,10};intmax=sizeof(arr)/sizeof(arr[0]);intright=max-1;intleft=0;......
  • 数据结构(借鉴408)-查找
    数据结构查找顺序查找折半查找树形查找:1.二叉排序树2.平衡二叉树3.红黑树B树及其基本操作、B+树的基本概念散列查找概念查找分类静态查找不改变查找表的......
  • selenium2Library中无法查找到Open Broswer等关键字解决办法
    robotframework-selenium2Library与robotframework-seleniumlibrary的版本不一致会导致部分关键字无法识别,无法完成测试,解决办法如下:(1)piplist------先查看以下安装包......
  • 搜索二维矩阵---二分查找
    搜索二维矩阵编写一个高效的算法来判断 mxn 矩阵中,是否存在一个目标值。该矩阵具有如下特性:每行中的整数从左到右按升序排列。每行的第一个整数大于前一行的最后一......
  • 在排序数组中查找元素的第一个和最后一个位置---二分查找
    在排序数组中查找元素的第一个和最后一个位置给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果......
  • 搜索旋转排序数组---二分查找
    搜索旋转排序数组整数数组nums按升序排列,数组中的值互不相同。在传递给函数之前,nums在预先未知的某个下标k(0<=k<nums.length)上进行了旋转,使数组变为[nums[k]......
  • 一道题为例深入理解二分
    深刻理解二分最佳牛围栏农夫约翰的农场由$N$块田地组成,每块地里都有一定数量的牛,其数量不会少于$1$头,也不会超过$2000$头。约翰希望用围栏将一部分连续的田......
  • 快排&归排&二分
    快速排序voidquick_sort(intq[],intl,intr){if(l>=r)return;inti=l-1,j=r+1,x=q[l+r>>1];while(i<j){do......