当前位置:   article > 正文

二分查找法(在一个有序数组中查找具体某个数字n)_给定一组有序序列,用随机化二分查找的方法查找某元素x。提示:随机化二分查找方法

给定一组有序序列,用随机化二分查找的方法查找某元素x。提示:随机化二分查找方法

有序数组中查找某个数字可以采用遍历

遍历代码实现:

  1. int main() {
  2. int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
  3. int k = 7;//查找7
  4. int i = 0;
  5. int flag = 0;
  6. for (i = 0; i < 10; i++)
  7. {
  8. if (arr[i] == k)
  9. {
  10. printf("找到了,下标是%d\n", i);
  11. flag = 1;
  12. break;
  13. }
  14. if (flag == 0)
  15. printf("找不到\n");
  16. }

遍历缺点:

如果数组中有n个元素,最坏的情况遍历n次,时间较慢。

改进: 

因为题干中提到“有序数组”,所以可以采用二分查找法,看中间的元素与被查找元素的大小关系,(如中间元素<被查找元素,小于中间元素的数就都排除了)提高了效率。

二分查找:

        如在  1  2  3  4  5  6  7  8  9  10中找到7

  首先定义left与right,如图1所示

图1

  然后通过left与right找到中间元素下标mid,mid=

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号