首页 > 其他分享 >查找

查找

时间:2022-10-08 21:22:43浏览次数:38  
标签:arr right int mid 查找 left

查找

查找元素伪代码

穷举法
Begin
    Set num[length] to some number
    Set target
    Set i to 0
    read target
    while (i <length) do
        if(num[i] == target)
            printf("找到了")
            break
    if(i==length)
        printf("没找到")
二分法
Begin
    Set num[length] to some number
    Set target,left,right
    Set i to 0
    Set left to num[0]
    Set right to num[length-1]
    read target
    while(left<=right)
        Set mid to (left+right)/2
        if(num[mid]>target)
            right to mid -1
        if(num[mid]<target)
            left to mid +1
        if(num[mid]==target)
            printf("找到了")
    if(left > right)
        printf("找不到")
End  

代码实现

二分法代码(仅以该数组和7为例子)
#include <stdio.h>
int main()
{
    int arr[10]={1,2,3,4,5,6,7,8,9,10} ;
    int left = 0 ;
    int right = 0 ;
    int a = 7 ;
    int i = 1 ;
    int n = sizeof(arr) / sizeof(arr[0]) ;
    right = n - 1 ;
    while (left <= right)
{
    int mid = (left+right)/2 ;
    if (arr[mid]> a)
    {
        right = mid - 1 ;
    }
    if (arr[mid]< a)
    {
        left = mid + 1 ;
    }
    if (arr[mid]==a)
    {
        printf("找到了,下标是:%d",mid);
        break;
    }
    
    }
    if (left > right )
    {
        printf("找不到") ;
    }

    return 0 ;
}

标签:arr,right,int,mid,查找,left
From: https://www.cnblogs.com/he-zhan/p/16770248.html

相关文章

  • 最简单的算法- 二分查找
    java代码/***Createdbyfupengon2017/1/11.*/publicclassbinarySearchpublicstaticlongbinarySearch_a(long[]src,intkey){intlo=0;......
  • 牛客网高频算法题系列-BM17-二分查找-I
    牛客网高频算法题系列-BM17-二分查找-I题目描述请实现无重复数字的升序数组的二分查找给定一个元素升序的、无重复数字的整型数组nums和一个目标值target,写一个函......
  • 树状结构查找爹们
    我有原始数据如下constnodes={id:"abc",name:"爷爷",children:[{id:"def",name:"爹",children:[{id:"jkl",name:"我"}......
  • Python 如何查找特定类型文件(以xls和xlsx为例)
    今天的文章是介绍如何用Python去定位特定类型的文件,会讲到用字符串匹配文件名定位特定文件以及顺带介绍一下遍历目录树的函数,通过今天的这一部分以及之前文章讲到的文件......
  • 二分查找
    整数二分右边界如图:x为所需的边界,绿色范围为满足的区域,红色范围为不满足的区域如何一直二分找到x呢先设置一个mid=(l+r)/2;判断一下mid是否符合要求;如果结果符合,mid在x的左......
  • 文件查找与读取的常用指令
    目录findgrepcatmoreheadtailfind通常用来在特定目录下搜索符合条件的文件用法:find[路径][方法][参数]命令含义find./-name1.txt查找当前路径下......
  • 折半查找
    #include<map>#include<stdio.h>#include<iostream>usingnamespacestd;longlongbox[50];longlongpos[50];intmain(){longlongn,m;cin>>n>......
  • Java二分查找代码实现
    Java二分查找代码实现及原理简要分析代码原理描述前提:已经有一个排好序的数组(否则需要先排序)定义左边界left,右边界right,确定搜索范围,循环执行二分查找(第3、4步骤)......
  • 树结构系列(一):从普通树到二叉查找树
    树结构是数据结构中非常重要的一种类型,本文将从最基础的普通树结构入门,延伸到二叉树,再延伸至二叉查找树。通过这种思路,让大家构建起关于树的最基本的知识链路。普通树树是一......
  • 算法突破:二分查找
    LeetCode75学习计划适用于想为技术面试做准备但不确定应该聚焦于哪些题目的用户。学习计划中的题目都是经过精心挑选的,Level1和Level2学习计划是为初级用户和中级用户......