二分查找算法
我正在使用二分搜索来查找记录。我的问题不是数据是否存在。我将在下面列出我的问题。
- 如果数据按以下顺序
1 2 3 4 4 5 5 5 6 7 8 8 9 10 11
如果现在我想先搜索它所在的 5 。通过使用二分搜索算法,我可以得到 5 是否存在。在上面的情况下我可以获得5的第6个位置(总共13个数据)。但我需要获得第五个位置。我如何使用二分搜索得到这个?在某些情况下,我再次需要获取给定数据的最后位置。我怎样才能得到这个二分搜索算法。
有没有比二分查找更快的方法?不是而是哈希方法?
I'm using binary search to locate a record. My question is not about whether the data is present or not. I'll list my questions below.
- if data are in following order
1 2 3 4 4 5 5 5 6 7 8 8 9 10 11
If now i want to search 5 where it is locate first. By using binary search algorithm I can get the 5 is present or not. in the above case i can get the 6th location of 5( totally 13 data) . But I need to get 5th location. How can i get this using binary search ? Once again in some cases i need to get last position of the given data. How can i get this binary search algorithm.
Is there any fastest method than binary search ? Not but hashing method ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以再次使用二分搜索。
您必须重复上述过程,直到不再找到该项目,当您不再找到该项目时,最后找到的项目就是您要查找的项目。
You could use a binary search again.
You must repeat the process above until you can no longer find the item, when you can no longer find the item, the last item found was the one you were looking for.