当前位置:首页  综合精选

综合精选

二分查找算法流程图(二分查找算法)

2023-04-10 18:22:56
导读 你们好,最近小活发现有诸多的小伙伴们对于二分查找算法流程图,二分查找算法这个问题都颇为感兴趣的,今天小活为大家梳理了下,一起往下看

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

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 ;i++)

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、 break;

23、 }

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

25、 即:

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

27、 {

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

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

30、 Continue;

31、 }

32、 c语言代码实现:

33、 #include 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(low=high)

43、 {

44、 mid=(low + high)/2 ;//下标的一半,int类型除法取整。

45、 if(x a[mid])

46、 {

47、 high=mid +1;

48、 }

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

50、 {

51、 printf('找到数字“6”。');

52、 break;

53、 }

54、 else

55、 {

56、 low=mid -1 ;

57、 }

58、 }

59、 return 0;

60、 }

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

62、 二分查找的时间复杂度是O(log(n)),最坏情况下的时间复杂度是O(n)。

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

免责声明:本文由用户上传,如有侵权请联系删除!