二分查找算法

发布于 2024-12-11 05:26:05 字数 295 浏览 0 评论 0原文

我正在使用二分搜索来查找记录。我的问题不是数据是否存在。我将在下面列出我的问题。

  1. 如果数据按以下顺序

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.

  1. 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一个人的旅程 2024-12-18 05:26:05

您可以再次使用二分搜索。

  1. 要获得最小值 5,请再次开始搜索,但其上限 1 小于当前找到的值 5。
  2. 要获得最大值 5,请再次开始搜索,但其下限 1 大于当前找到的 值值为 5。

您必须重复上述过程,直到不再找到该项目,当您不再找到该项目时,最后找到的项目就是您要查找的项目。

You could use a binary search again.

  1. To get the lowest value of 5, start the search again but with its upper bounds 1 less than the current found value of 5.
  2. To get the higest value of 5, start the search again but with its lower bounds 1 greater than the current found value of 5.

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文