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

1.9 折半查找

时间:2023-04-25 19:46:31浏览次数:42  
标签:折半 int 1.9 mid 查找 low printf

#include<stdio.h>
#define N 10 
int main()
{
        int i,a[N]={-3,4,7,9,13,45,67,89,100,180},low=0,high=N-1,mid,k=-1,m;
    printf("a数组种的数据如下:\n");
    for(i=0;i<=N;i++)
    printf("%d",a[i]);
    printf("\n");
    printf("Enter m: ");
    scanf("%d",&m);
    while(low<=high)
    {
        mid=(low+high)/2;
        if(m<a[mid])
            high=mid-1;
        else
        if(m>a[mid])
        low=mid+1;
        else{
        k=mid;
        break;
    }
     if(k>=0)
     printf("m=%d,index=%d\n",m,k);
     else
     printf("Not be found!\n");
}

 

标签:折半,int,1.9,mid,查找,low,printf
From: https://www.cnblogs.com/xuan-2004/p/17353620.html

相关文章

  • 查找指定字符串在某个字符串中的出现次数
    c语言代码实现:此处)折叠或打开1.#include<stdio.h>2.<string.h>3.intsearchnum(char*str,char*pattern)4.{5.if(str==NULL)6.;7.*pos=NULL;8.intcount=0;9.while((pos=strstr(str,pattern))!=NULL)10.{11.++;1......
  • 信创操作系统--麒麟Kylin桌面版(项目四 文件与目录管理:文件浏览、管理、查找、共享等)
    浏览目录和文件单击任务栏中的【文件管理器图标】即可打开文件管理器,也可单击桌面的【计算机】图标也可进入文件管理器,进入之后即可浏览与查看,如图1-1所示,在【计算机】的页面中,可以单击【本地分区】、【网上邻居】下的相关选项或单击左侧的文件菜单栏,可以进入相对应的文件夹。图1-1......
  • vim中实现全文查找替换确认操作
    我们很多时候会需要某个字符串在文章中某些位置出现时被替换,而其它位置不被替换的有选择的操作,这就需要用户来进行确认::%s/aaa/bbb/g#替换当前文本所有行的aaa为bbb#在命令后面加上一个字母c就可以实现,即::%s/aaa/bbb/gc#顾名思意,c是confirm的缩写  效果: ......
  • 如何在Linux中查找一个文件
    导读对于新手而言,在Linux中使用命令行可能会非常不方便。没有图形界面,很难在不同文件夹间浏览,找到需要的文件。本篇教程中,我会展示如何在Linux中查找特定的文件。第一步要做的是通过SSH连接到你的Linux,在Linux中查找文件有两种方法。一种是使用 find 命令find命令使......
  • 数组的复制、反转、线性查找、二分查找
    publicclassArrayTest2{ publicstaticvoidmain(String[]args){ String[]arr=newString[]{"JJ","DD","MM","BB","GG","AA"}; //数组的复制(区别于数组变量的赋值:arr1=arr) String[]arr1=new......
  • #yyds干货盘点# LeetCode程序员面试金典:在排序数组中查找元素的第一个和最后一个位置
    题目:给你一个按照非递减顺序排列的整数数组nums,和一个目标值target。请你找出给定目标值在数组中的开始位置和结束位置。如果数组中不存在目标值target,返回 [-1,-1]。你必须设计并实现时间复杂度为 O(logn) 的算法解决此问题。 示例1:输入:nums=[5,7,7,8,8,10],target=......
  • 查找元素索引重复
    publicclassTest4_2{publicstaticvoidmain(String[]args){int[]arr={11,33,44,55,11,11,};int[]result=getIndex(11,arr);if(result.length==0){System.out.println("抱歉,你输入的元素有误!");......
  • 有重复值的二分查找
    最近在验证SQLjoin的算法,感觉在内存中实现的话,比较高效的方法就是二分查找了。但与普通二分查找不同,SQLjoin的时候左右两边的值可能会有重复,这些重复值都是要找到的。所以我对二分查找进行了升级优化,不再返还一个索引,而是返回一个索引范围,找不到就返回null实现了两个版本:1.......
  • 三大类算法:递归、排序、二分查找
    一、递归”递“+”归“。这两个意思,正是递归思想的精华所在,去的过程叫做递,回来的过程叫做归,在编程语言中对递归可以简单理解为:方法自己调用自己,只不过每次调用时参数不同而已。满足递归的条件:1、递归表达是(规律)如果一个问题的解能够拆分成多个子问题的解,拆分之后,子问题和该问题在求......
  • 9.折半查找
     问题分析:首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记......