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;
}

 

相关文章
|
6月前
|
C语言
【C语言刷题系列】合并两个有序数组
【C语言刷题系列】合并两个有序数组
|
2月前
|
存储 算法 C语言
【C语言】二分查找算法
【C语言】二分查找算法
|
6月前
|
存储 算法 C语言
二分查找算法的概念、原理、效率以及使用C语言循环和数组的简单实现
二分查找算法的概念、原理、效率以及使用C语言循环和数组的简单实现
|
6月前
|
C语言
C语言----数组----二分查找
C语言----数组----二分查找
|
6月前
|
C语言
C语言--通过函数实现二分查找
C语言--通过函数实现二分查找
|
7月前
|
C语言 数据安全/隐私保护
【C语言】分支和循环的应用(二分查找、字符移动、模拟登录界面)
【C语言】分支和循环的应用(二分查找、字符移动、模拟登录界面)
46 0
|
7月前
|
存储 搜索推荐 C语言
Leetcode—合并两个有序数组—C语言
Leetcode—合并两个有序数组—C语言
|
7月前
|
算法 C语言
【C语言】二分查找
【C语言】二分查找
|
7月前
|
C语言
C语言——二分查找(在万千之中快速找到你)
C语言——二分查找(在万千之中快速找到你)
43 0
|
7月前
|
编译器 程序员 C语言
【C语言】变长数组,二分查找和数组之间自动替换的实现
【C语言】变长数组,二分查找和数组之间自动替换的实现