如何用C语言实现高效查找(二分法)

描述

 

今天给分享一下使用C语言实现二分算法,主要包含以下几部分内容:
 

  • 二分查找算法介绍
  • 二分查找算法使用场景
  • 二分查找算法代码实现
  • 二分查找算法实现过程

 

用C语言实现二分法查找代码
 

二分查找也称折半查找(Binary Search),是一种效率较高的查找方法。

代码

 

代码

有序且不重复的数组中的元素的查找。

代码

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

int findNumIndex(int *arr,int len,int n){ int end = len; int start = 0;
//越界 if(n > *(arr+len-1) || n < *(arr)) { return -1; }
while(1) { int midIdx = (end + start) / 2; 
if(start == midIdx && *(arr+midIdx) != n) { return -1; } 
if(*(arr+midIdx) == n) { return midIdx; } else if(*(arr+midIdx) > n) { end = midIdx; } else { start = midIdx; } }}

 

代码

首先,假设数组中的元素是按升序排列的,将最中间的数字和要搜索的数字进行比较,如果两者相等,则搜索成功;否则,从中间数字位置将数组分为两个子数组,前数组和后数组,如果中间数字大于搜索数字,则进一步查找前数组中的元素,否则在后一个数组中进行查找。重复上述过程,直到找到满足条件的数字,则搜索成功,或者直到子表所有的数字查找完毕还没有找到该数字,此时搜索不成功。

 

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分