gpt4 book ai didi

C++二分法在数组中查找关键字的方法

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章C++二分法在数组中查找关键字的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了C++二分法在数组中查找关键字的方法。分享给大家供大家参考。具体如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/*
   此程序演示了二分法查找算法(针对按从小到大排列的数组)的实现。
*/
#include <iostream>
using namespace std;
/*
   功能: 实现数组的二分法查找(只算法只适合按从小到大排列的数组)
   返回值:关键字在数组中的下标, 返回-1表示未找到
   a[]:  要搜索的数组
   len:  数组元素个数
   key:  要查找的关键字
*/
int binSearch( int a[], int len, int key)
{
   int i = len / 2;
   int ii = 0;
   if (len < 1)
     return -1;
   if ((key > a[i]) && (len - i > 0))
   {
     ii = binSearch(a+i+1, len - i - 1, key); // 在后半段数组中查找
     if (ii != -1)
       return ii + i + 1; // 加上数组前半段的长度
     else
       return -1;
   }
   else if (key < a[i] && i > 0) // 在前半段数组中查找
     return binSearch(a, i, key);
   else if (key == a[i])
     return i; // 返回关键字在数组中的下标
   else
     return -1; // 未在数组中找到关键字
}
int main()
{
   int a[] = {2, 4, 5, 20, 24, 35, 66, 78, 98};
   int len = sizeof (a) / sizeof ( int );
   int i, key = -1;
   while (1)
   {
     cin>>key;
     i = binSearch(a, len, key);
     printf ( "%d\n" , i);
     if (key > 100)
       break ;
   }
   return 0;
}

希望本文所述对大家的C++程序设计有所帮助.

最后此篇关于C++二分法在数组中查找关键字的方法的文章就讲到这里了,如果你想了解更多关于C++二分法在数组中查找关键字的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com