C语言——二分查找(在万千之中快速找到你)

简介: C语言——二分查找(在万千之中快速找到你)

在⼀个升序的数组中查找指定的数字n,很容易想到的⽅法就是遍历数组,效率是非常低的;

如:猜数字游戏,你需要从100个数字中找到,出数的人想的那个数字,1,2,3,4,5......;

这样是非常慢的,如果数字在大亿点点,非常难找;

这里可以:先选择50,判断大了还是小了,在从25或者75,这样需要判断的次数就少了。

这样的方法就叫做二分查找也叫折半查找;

首先基础要素

int main()
{
 
    return 0;
}

需要数组将大量的数据装入

 arr[]用来寻找和控制小标(left  ,   right  ,  mid)

你所要找寻的数字        k= ?  

搬出代码

我们是利用mid的下标进行分开,这样就减少了遍历所带来的时间过长的影响

#define _CRT_SECURE_NO_WARNINGS       
 
 
#include<stdio.h>
 
int main()
{
    int find=0;                       
    int left=0;              //左下标
    int mid;                //中间用来作为二分的值
    int arr[] = {1,2,3,4,5,6,7,8,9,10};
    int right = sizeof(arr) / sizeof(0) - 1; 
 
    //计算数组的长度,又因为数组是从0开始,所以减去一个一
    int k = 4;           //查找的数
    while(left <= right) {
        mid = (left + right) / 2;
        if (arr[mid]>k) {                    //判断arr[mid]与k的大小,从mid位置分开
            right = mid-1;
        }
        if (arr[mid] < k) {
            left = mid + 1;              
        }
        else {
            find += 1;             //采用一个值来判断是否找到
            break;
        }
    }
    if (find = 1) {
        printf("找到了,下标是%d\n",mid);
    }
    else {
        printf("没有找到");
    }
    return 0;
}

对你来说超简单的,留个赞走吧



相关文章
|
6月前
|
算法 程序员 数据处理
算法与人生 揭秘C语言中高效搜索的秘诀——二分查找算法详解
算法与人生 揭秘C语言中高效搜索的秘诀——二分查找算法详解
|
6月前
|
存储 算法 搜索推荐
C语言与人生:数组交换和二分查找
C语言与人生:数组交换和二分查找
|
29天前
|
存储 算法 C语言
【C语言】二分查找算法
【C语言】二分查找算法
|
5月前
|
存储 算法 C语言
二分查找算法的概念、原理、效率以及使用C语言循环和数组的简单实现
二分查找算法的概念、原理、效率以及使用C语言循环和数组的简单实现
|
5月前
|
C语言
C语言----数组----二分查找
C语言----数组----二分查找
|
5月前
|
C语言
C语言--通过函数实现二分查找
C语言--通过函数实现二分查找
|
6月前
|
C语言 数据安全/隐私保护
【C语言】分支和循环的应用(二分查找、字符移动、模拟登录界面)
【C语言】分支和循环的应用(二分查找、字符移动、模拟登录界面)
44 0
|
6月前
|
算法 C语言
【C语言】二分查找
【C语言】二分查找
|
6月前
|
编译器 程序员 C语言
【C语言】变长数组,二分查找和数组之间自动替换的实现
【C语言】变长数组,二分查找和数组之间自动替换的实现
|
6月前
|
算法 C语言
【C语言必刷题】3.二分查找
【C语言必刷题】3.二分查找