题目
给定一个数组,求一个数字K在排好序的该数组中哪个位置。
具体描述请见hihoCoder。
解题思路
二分查找。采用类似快排里split的思想,将K插入数组最后一个位置并运行一遍split函数找到K在排好序的该数组中的位置,然后只要检查在K右侧的数字里是否有等于K的数即可。
时间复杂度
split函数用时N,检查一遍用时N,整体时间复杂度为2N。
代码
1 |
|
给定一个数组,求一个数字K在排好序的该数组中哪个位置。
具体描述请见hihoCoder。
二分查找。采用类似快排里split的思想,将K插入数组最后一个位置并运行一遍split函数找到K在排好序的该数组中的位置,然后只要检查在K右侧的数字里是否有等于K的数即可。
split函数用时N,检查一遍用时N,整体时间复杂度为2N。
1 |
|
Author:Who Watson
Link:https://wangshenghu.github.io/2016/05/17/2016-05-17-hihocoder-binary-search/
Publish date:May 17th 2016, 4:01:15 pm
Update date:December 4th 2022, 5:11:43 pm
License:本文采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可