算法二分查找(C语言版)

eg:查找一个数组中的元素k

#include<stdio.h>

int Binary_search(int arr[ ], int k, int sz){

int left = 0;//指向数组头元素的指针

int right = sz - 1;//指向数组最后一个元素的指针

while(left <= right ){

int mid = ( left + right ) / 2;

if(arr[mid] < k){

left = mid + 1;

}

else if(arr[mid] > k){

right = mid - 1;

}

else{

return mid;

}

}

return -1;

}

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 ret = Binary_search(arr, k, sz);

if(ret == -1){

printf("找不到指定的数字!\n");

}

else{

printf("找到了!下标是: %d\n", ret);

}

return 0;

}

 

相关推荐

  1. 算法二分查找C语言

    2024-05-01 07:36:02       15 阅读
  2. C语言-二分查找

    2024-05-01 07:36:02       26 阅读
  3. [C语言]二分查找

    2024-05-01 07:36:02       17 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-01 07:36:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-01 07:36:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-01 07:36:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-01 07:36:02       20 阅读

热门阅读

  1. http作业

    2024-05-01 07:36:02       15 阅读
  2. Ae 中 Range Selector 和 Expression Selector 有什么区别?

    2024-05-01 07:36:02       10 阅读
  3. 每天学习一个Linux命令之ldconfig

    2024-05-01 07:36:02       13 阅读
  4. Python学习指南

    2024-05-01 07:36:02       12 阅读
  5. redis运维篇上篇

    2024-05-01 07:36:02       41 阅读
  6. C++——数据结构stack,queue,priority_queue

    2024-05-01 07:36:02       13 阅读
  7. 语言模型:智能化未来的钥匙

    2024-05-01 07:36:02       12 阅读
  8. 在C++中初始化二维数组的几种不同方法

    2024-05-01 07:36:02       12 阅读
  9. Ubuntu22.04 私钥登录

    2024-05-01 07:36:02       20 阅读
  10. 常用网络知识点(网管网工需掌握)

    2024-05-01 07:36:02       12 阅读