【C语言实现二分查找法】

简介: 【C语言实现二分查找法】

C语言实现二分查找法

#define _CRT_SECURE_NO_WARNINGS 1
  #include <stdio.h>

1.计算元素个数

left为左下标(以中间元素的下标为标准)

right为右下标(以中间元素的下标为标准)

元素 1 2 3 4 5 6 7 8 9 10

下标 0 1 2 3 4 5 6 7 8 9

int main()
  {
    int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
    int k = 7;
    int sz = sizeof(arr) / sizeof(arr[0]);    
    int left = 0;          
    int right = sz-1;

若查找的元素存在,右下标是会比左下标大的;int mid = left + (right-left) / 2计算中间元素的下标,采用这种方式是为了防止left和right太大而溢出;

while (left <= right)     
    {
      int mid = left + (right-left) / 2;
      if (arr[mid] > k)
      {
        right = mid - 1;1
      }
      else if (arr[mid] < k)
      {
        left = mid + 1;
      }
      else
      {
        printf("找到了,下标是:%d\n",mid);
        break;
      }
    }

若查找的元素不存在,左下标是会比右下标大的

if (left > right)            
      printf("找不到\n");
    return 0;
  }
目录
相关文章
|
6月前
|
算法 程序员 数据处理
算法与人生 揭秘C语言中高效搜索的秘诀——二分查找算法详解
算法与人生 揭秘C语言中高效搜索的秘诀——二分查找算法详解
|
6月前
|
存储 算法 搜索推荐
C语言与人生:数组交换和二分查找
C语言与人生:数组交换和二分查找
|
1月前
|
存储 算法 C语言
【C语言】二分查找算法
【C语言】二分查找算法
|
5月前
|
存储 算法 C语言
二分查找算法的概念、原理、效率以及使用C语言循环和数组的简单实现
二分查找算法的概念、原理、效率以及使用C语言循环和数组的简单实现
|
5月前
|
C语言
C语言----数组----二分查找
C语言----数组----二分查找
|
5月前
|
C语言
C语言--通过函数实现二分查找
C语言--通过函数实现二分查找
|
6月前
|
C语言 数据安全/隐私保护
【C语言】分支和循环的应用(二分查找、字符移动、模拟登录界面)
【C语言】分支和循环的应用(二分查找、字符移动、模拟登录界面)
46 0
|
6月前
|
算法 C语言
【C语言】二分查找
【C语言】二分查找
|
6月前
|
C语言
C语言——二分查找(在万千之中快速找到你)
C语言——二分查找(在万千之中快速找到你)
41 0
|
6月前
|
编译器 程序员 C语言
【C语言】变长数组,二分查找和数组之间自动替换的实现
【C语言】变长数组,二分查找和数组之间自动替换的实现