当前位置:   article > 正文

二分查找算法-C语言实现_算法 binarysearchc语言

算法 binarysearchc语言

二分查找介绍

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

 

 

二分查找适用场景

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

代码实现

  1. int findNumIndex(int *arr,int len,int n)
  2. {
  3. int end = len;
  4. int start = 0;
  5. //越界
  6. if(n > *(arr+len-1) || n < *(arr))
  7. {
  8. return -1;
  9. }
  10. while(1)
  11. {
  12. int midIdx = (end + start) / 2;
  13. if(start == midIdx && *(arr+midIdx) != n)
  14. {
  15. return -1;
  16. }
  17. if(*(arr+midIdx) == n)
  18. {
  19. return midIdx;
  20. }
  21. else if(*(arr+midIdx) > n)
  22. {
  23. end = midIdx;
  24. }
  25. else
  26. {
  27. start = midIdx;
  28. }
  29. }
  30. }

实现过程分析

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/616978
推荐阅读
相关标签
  

闽ICP备14008679号