当前位置: 首页 > 热点 > > 内容页

每日聚焦:二分查找算法原理_二分查找算法

时间:2023-02-06 17:56:58 来源:互联网 分享至:

你们好,最近小活发现有诸多的小伙伴们对于二分查找算法原理,二分查找算法这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看看吧。

1、线性搜索的条件:要求数据表有序。

2、线性搜索的工作原理:首先将表格中间记录的关键词与搜索关键词进行比较;


(相关资料图)

3、(如果两者相等,则搜索成功)

4、(否则,将表分成两个子表,根据比较结果决定寻找哪个子表。)

5、具体实现过程:第一步,输入数据。

6、可以直接将需要的数据存放在数组中,比如int a [10]={1,2,3,4,5,6,7,8,9,10 };

7、也可以循环输入。

8、for(I=0;I n;我)

9、{

10、scanf("%d "a[I]);

11、}

12、实现数据输入数组;

13、具体实现过程:第二步:写循环。

14、如果在某个周期中没有找到匹配的数据,那么应该将(下标最大值1)或(下标最小值-1)赋给中间值mid

15、当下标最小值超过最大值时,循环结束,且(低高);

16、而(低=高)是建立环路的条件。

17、具体实施过程:第二步,判断。

18、如果循环找到与您的搜索匹配的数据,则结束循环;

19、if(x==a[mid])

20、{

21、Printf("找到数字" 6 "");

22、打破;

23、}

24、注意:如果你想找到同样数量的你的数据,使用continue;

25、即:

26、if(x==a[mid])

27、{

28、Printf("找到数字" 6 "");

29、柜台;//记录的数量

30、继续;

31、}

32、c语言代码实现:

33、#包含stdio.h

34、int main()

35、{

36、int a[10]={1,2,3,4,5,6,7,8,9,10 };

37、Printf("找到数字“6”。\ n’);

38、int low=1;

39、int high=10//数组的最大下标n-1

40、int x=6;//要查找的数字

41、int mid

42、while(低=高)

43、{

44、mid=(低高)/2;//下标的一半,int类型的除法和舍入。

45、if(x a[mid])

46、{

47、高=中1;

48、}

49、if(x==a[mid])

50、{

51、Printf("找到数字" 6 "");

52、打破;

53、}

54、其他

55、{

56、低=中1;

57、}

58、}

59、返回0;

60、}

61、运行程序;成功截图如下;

62、二分搜索法的时间复杂度为O(log(n)),最坏的时间复杂度为O(n)。

以上就是二分查找算法这篇文章的一些介绍,希望对大家有所帮助。

Copyright ©  2015-2022 北方财富网版权所有  备案号:京ICP备2021034106号-50   联系邮箱: 55 16 53 8@qq.com