C语言有序数组二分查找

简介: C语言有序数组二分查找
#include <stdio.h>
int main()
{
  int i = 0;
  int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
  int x = 0;
  printf("输入要查找的元素值:");
  scanf("%d", &x);
  int sz = sizeof(arr) / sizeof(arr[0]);
  int left = sz - 1;
  int mit = 0;
  int right = 0;
  //二分查找
  while (right < left)
  {
    mit = (left + right) / 2;//用mit做为数组中间值下标
    if (arr[mit] == x)
    {
      i = 1;//用变量i做为判断是否找到的条件,找到为1,否则为0
      break;
    }
    else if (arr[mit] < x)//此时x大于中间值
    {
      right = mit + 1;
    }
    else//此时x小于中间值
    {
      left = mit - 1;
    }
  }
  if (i == 1)
  {
    printf("找到了,在下标为%d的位置\n", mit);
  }
  else
    printf("没找到\n");
  return 0;
}

 

相关文章
|
18天前
|
算法 程序员 数据处理
算法与人生 揭秘C语言中高效搜索的秘诀——二分查找算法详解
算法与人生 揭秘C语言中高效搜索的秘诀——二分查找算法详解
|
18天前
|
存储 算法 搜索推荐
C语言与人生:数组交换和二分查找
C语言与人生:数组交换和二分查找
|
9天前
|
C语言 数据安全/隐私保护
【C语言】分支和循环的应用(二分查找、字符移动、模拟登录界面)
【C语言】分支和循环的应用(二分查找、字符移动、模拟登录界面)
20 0
|
11天前
|
存储 搜索推荐 C语言
Leetcode—合并两个有序数组—C语言
Leetcode—合并两个有序数组—C语言
|
12天前
|
算法 C语言
【C语言】二分查找
【C语言】二分查找
|
17天前
|
C语言
C语言——二分查找(在万千之中快速找到你)
C语言——二分查找(在万千之中快速找到你)
13 0
|
18天前
|
算法 C语言
【C语言必刷题】3.二分查找
【C语言必刷题】3.二分查找
|
18天前
|
编译器 程序员 C语言
【C语言】变长数组,二分查找和数组之间自动替换的实现
【C语言】变长数组,二分查找和数组之间自动替换的实现
|
18天前
|
存储 C语言
【C语言】Leetcode 88.合并两个有序数组
【C语言】Leetcode 88.合并两个有序数组
17 3
|
18天前
|
算法 C语言
C语言之二分查找
C语言之二分查找