C++二分查找算法实例

2025-05-27 0 97

本文实例为大家分享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

49

50

51

52

53

54

55

56

57

58

59

60

61

62
#include <iostream>

using namespace std;

int search(int *p,int length,int key);

int search1(int *p,int length,int key);

int main()

{

cout << "Hello world!" << endl;

int a[] = {1,2,3,4,5,6,7,8,8,8,9,10,11,12,13,14};

int len = sizeof(a)/sizeof(int);

int pos = search1(a,len,8);

cout << pos << endl;

return 0;

}

int search1(int *p,int length,int key)

{

int left=0;

int right=length-1;

while(left<=right)

{

int mid = (left+right)/2;

if(p[mid]>=key)

{

right = mid-1;

}else

{

left = mid+1;

}

}

if(left<length && p[left]==key)

return left;

return -1;

}

int search(int *p,int length,int key)

{

int left=0;

int right = length -1;

while(left<=right)

{

int mid = (left+right)/2;

if(p[mid]==key)

{

return mid;

}

if(p[mid] > key)

{

right = mid+1;

}

if(p[mid]<key)

{

left=mid-1;

}

}

return -1;

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 C++二分查找算法实例 https://www.kuaiidc.com/73830.html

相关文章

发表评论
暂无评论