一个已排序的数组,二分查找目标元素:
fun main(args: Array<String>) {
print(search(arrayOf(1, 3, 5, 6, 12, 54), 7))
}
fun search(nums: Array<Int>, target: Int): Int {
var left = 0
var right = nums.size
var mid = (left + right).shr(1)
while (left <= right) {
if (target <= nums[mid]) {
right = mid - 1
} else {
left = mid + 1
}
mid = (left + right).shr(1)
}
return left
}
Kotlin 开发者社区
国内第一Kotlin 开发者社区公众号,主要分享、交流 Kotlin 编程语言、Spring Boot、Android、React.js/Node.js、函数式编程、编程思想等相关主题。
越是喧嚣的世界,越需要宁静的思考。