首页 > 其他分享 >(非函数方法)查找有序数组中x的位置(二分/折半)

(非函数方法)查找有序数组中x的位置(二分/折半)

时间:2023-02-26 16:32:48浏览次数:46  
标签:折半 二分 arr right int mid 查找 printf left

#include<stdio.h>

int main() {
int x = 0;
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int max = sizeof(arr) / sizeof(arr[0]);
int right = max - 1;
int left = 0;
printf("请输入1--10内要查询的数字:");
scanf_s("%d", &x);

while (left <= right) {
int mid = (right + left) / 2;
if (arr[mid] == x) {
printf("%d在该数组中的第%d个位置。", x, mid + 1);
break;
}
else if (arr[mid] > x) {
right = mid - 1;
}
else {
left = mid + 1;
}
}
if (right < left) {
printf("未找到概数。");
}
return 0;
}

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

相关文章

  • 数据结构(借鉴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......
  • 查找2个日程时间段有没有交集
    sql:#查询的时间段set@protect_from='2022-12-2700:00:00';set@protect_to='2022-12-2800:00:00';#日程表todo里的start,end是日程的时间段select*frominfo......
  • 一、基础算法(快排,归并,二分,高精度,前缀和,差分)
    一、基础算法快速排序题目:给定你一个长度为n的整数数列。请你使用快速排序对这个数列按照从小到大进行排序。并将排好序的数列按顺序输出。数据范围:1≤n≤100000,所有......