一个运用二分查找算法的程序的时间复杂度是“对数级别清核”。二分查找是一种效率较高的查找方法,算法复杂度即是while循环的次数,时间复杂度可以表示“O(h)=O(log2n)”。首先,假设表中元素是按升序排列,将表中间位卖槐置记中正友录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不成功。
#include<stdio.h>int main()
{
int i,j,k,n,m
int a[105]
scanf("%d",&n)
for(i=0i<ni++)
scanf("%d"颤搏,&a[i])
scanf("%d",&m)
int left=0right=n-1
while(right>=left)
{
mid=(left+right)/2
if(a[mid]==m)
{
printf("裂缓%d\n"茄源祥,mid)
break
}
else if(a[mid]>m)
right=mid-1
else
left=mid+1
}
if(left<right)
printf("null\n")
return 0
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)