数据结构--查找

Posted halo_vagabond

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构--查找相关的知识,希望对你有一定的参考价值。

专题--查找

1. 二分查找

 1 /*二分查找*/
 2 int Binary_Search(int a[],int n,int key)
 3 {
 4     int lo=0;
 5     int hi=n;
 6     //版本A
 7     while(lo<hi)
 8     {
 9         int mid=(lo+hi)>>1;
10         if(a[mid]<key)
11             lo=mid+1;
12         else if(key<a[mid])
13             hi=mid;
14         else
15             return mid;
16     }
17 
18     /*
19     //版本B:若多个命中元素,总能保证返回秩最大者;查找失败时,能够返回失败的位置
20     while(lo<hi)
21     {
22         int mid=(lo+hi)>>1;
23         key<a[mid] ?hi=mid:lo=mid+1;
24     }
25     return --lo;
26     */
27     return -1;
28 }
29 
30 int main()
31 {
32     int a[]={0,2,4,6,8,1,3,5,7,9};
33     int index=Binary_Search(a,10,5);  
34     cout<<index<<endl;                   //7
35     return 0;
36 }

 

以上是关于数据结构--查找的主要内容,如果未能解决你的问题,请参考以下文章

记录C#常用的代码片段

如何使用导航架构组件查找子片段

如何创建片段以重复变量编号中的代码行

以下代码片段的时间复杂度是多少?

在片段中,如何查找活动布局中定义的视图?

在片段中查找ViewById