首页 > 编程知识 正文

二分查找伪代码,时间复杂度为o(logn)的排序算法

时间:2023-05-05 00:40:08 阅读:167623 作者:930

intbinsearch(intarr[],int len,int key ) ) )。

{

assert(arr!=空; //安全处理机制

if (空值==arr ) )。

{

返回- 1;

}

int low=0; //左指针

int high=len-1; //右指针

int mid; //intmid=(lowhigh )/2; //各缩小一半,需要与key进行比较的中值

如果wile(low=high )//low和high之间至少有一个值,则继续比较

{

mid=(低高)/2; //mid=(high-low )/2 low;//使mid指向临时范围的中间值

如果if(ARR[mid]==key ) mid所指的值是key,则直接返回其下标

{

返回mid;

}

如果elseif(arr[mid]key )/mid所指定的值小于key要查找的key,则该值必须位于mid的右半部分

{

low=mid 1;

}

如果else//mid所指的值大于key要找的key,则该值必须位于mid的左半部分

{

high=mid-1;

}

}

//如果while循环此时结束,并且函数还没有结束,并且此数组中一定不存在要查找的此值,则返回-1

返回- 1;

}

int main () )

{

intarr [ ]={ 1,3,4,5,8,10,20,23,36,50 };

inttmp=Binsearch(arr,sizeof ) arr )/sizeof ) arr[0],-100 );

printf('%dn ',tmp );

返回0;

}

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。