问题:有一个升序排列无重复数字的数据,以及一个数字,利用二分法查找数字在数组中的位置,找到则返回其位置号,没找到返回-1.
解答:
通过两种方式实现:第一种方式为递归实现,需要传递数组的头和尾的位置。
- publicclass
- /**
- publicstaticintintintintint
- ifnullreturn1
- int2
- "中间值:"
- if
- if
- return1
- elseif
- return
- else
- return
- elseif
- return
- else
- return1
- /**
- publicstaticvoid
- int1,3,4,5,6,7,11,46,255,743,888
- int11,1,11
第二种实现方式为非递归实现,则利用循环:
- publicclass
- publicstaticintintint
- ifnullreturn1
- int2
- if
- return1
- int0//数组下标
- int1//数组下标
- while
- 2
- if
- elseif
- else
- return1
- return1
- /**
- publicstaticvoid
- int1,3,4,5,6,7,11,46,255,743,888
- int5
文章来源: 利用二分法查找一个数字在数组中的位置