首页 > 其他分享 >9折半查找

9折半查找

时间:2023-05-08 21:13:02浏览次数:29  
标签:折半 sz arr int mid 查找 printf left

#include <stdio.h>
void My_sort(int arr[],int sz)
{
int i = 0;
int j = 0;
for (i = 0; i < sz - 1; i++)
{
for (j = 0; j < sz - i - 1; j++)
{
if (arr[j] > arr[j + 1])
{
int t = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = t;
}
}
}
}
int My_lin(int arr[], int sz)
{
int r = 0;
int left = 0;
int right = sz-1;
printf(" \n");
printf("请输入想要查找的数:");
scanf("%d", &r);
while(left<right)
{
int mid = left + (right - left)/2;
if (arr[mid] < r)
{
left = mid + 1;
}
else if (arr[mid] > r)
{
right = mid - 1;
}
else
{
printf("查找成功:");
return mid;
}

}
if (left > right)
{
printf("查找失败,请重新输入:");
return 0;
}
}
int main()
{
int i = 0;
int arr[] = { 1,3,5,7,9,2,4,6,8,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
My_sort(arr, sz);
while(1)
{
int ret = My_lin(arr, sz);
printf("下标=%d\n", ret);
}
return 0;
}

标签:折半,sz,arr,int,mid,查找,printf,left
From: https://www.cnblogs.com/lak1109/p/17383159.html

相关文章

  • 3、查找表相关问题
    1、两类查找问题2、两个数组的交集349-两个数组的交集......
  • 为啥我的Python这么慢 - 项查找 (二)
    根据那篇文章改了两处写法,如下(存储于readFaJoin2.py文件中):fromcollectionsimportdefaultdictaDict=defaultdict(list)forlineinopen("GRCh38.fa"):ifline[0]=='>':key=line[1:-1]else:aDict[key].append(line.strip())......
  • 二分查找——出现溢出问题
    算法描述:前提:有已排序数组A(假设已经做好)定义左边界L、右边界R,确定搜索范围,循环执行二分查找(3、4两步)获取中间索引M=Floor((L+R)/2)中间索引的值A[M]与待搜索的值T进行比较①A[M]==T表示找到,返回中间索引②A[M]>T,中间值右侧的其它元素都大于T,无需......
  • 如何在Linux中查找一个文件
    《Linux就该这么学》-必读的Linux系统与红帽RHCE认证免费自学书籍免费电子版下载地址:https://www.linuxprobe.com/book导读对于新手而言,在Linux中使用命令行可能会非常不方便。没有图形界面,很难在不同文件夹间浏览,找到需要的文件。本篇教程中,我会展示如何在Linux中查找特......
  • 【二分查找】LeetCode 33. 搜索旋转排序数组思路
    题目链接33.搜索旋转排序数组思路思路都在注释里代码classSolution{publicintsearch(int[]nums,inttarget){intlen=nums.length;if(len==0){return-1;}intleft=0,right=len-1;//1.......
  • 【二分查找】LeetCode 528. 按权重随机选择
    题目链接528.按权重随机选择思路代码classSolution{privateint[]sum;publicSolution(int[]w){sum=newint[w.length+1];for(inti=1;i<sum.length;i++){sum[i]=sum[i-1]+w[i-1];}}p......
  • 【二分查找】LeetCode 69. x 的平方根
    题目链接69.x的平方根思路基本思路是在区间\([1,x/2]\)中使用二分查找(因为平方根必然小于\(x/2\)),只不过需要注意一些细节。因为使用的是闭区间查找,所以判断循环终止的条件为\(left\leqright\)。为了防止溢出,使用mid=(right-left)/2+left和mid==x/mi......
  • 【二分查找】LeetCode 540. 有序数组中的单一元素
    题目链接540.有序数组中的单一元素思路假如不存在单个的元素,那么在奇数位置上总是成对元素的第一个元素,偶数位置上总是成对元素的第二个元素,但是如果加入了单个元素呢?我们可以看到在单个元素的左边这个特点没有变化,但是在单个元素的右边,奇数位置上总是成对元素的第二个元素,偶......
  • 用Python vc2 在大图中查找小图
    importcv2importtimedeffind_image_location(small_image_path,large_image_path):  #Loadimages  small_image=cv2.imread(small_image_path)  large_image=cv2.imread(large_image_path)  #Findmatchusingtemplatematching  result......
  • 查找某物质的热力学数据并转换为chemkin数据格式
    在使用CHEMKIN时,其库中的热力学数据有时无法满足需求,需要自行查询物质的热力学数据并编写热力学文件,本文将以B2O3为例子描述查找到转换热力学数据的整个过程。查找热力学数据进入NIST的热力学数据库网站http://webbook.nist.gov/chemistry/form-ser.html输入化学式,使用Calo......