gpt4 book ai didi

algorithm - 在一个数组中进行二进制搜索,除了两个元素之外,所有元素都被排序,即所有元素都被排序,然后交换两个相邻元素?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:07:37 25 4
gpt4 key购买 nike

是否可以在数组中进行二分查找,首先对所有元素进行排序,然后交换两个相邻元素(已排序数组的)?

例子3 10 40 20 50 70 80

在此示例中,20 和 40 已互换。

最佳答案

是的,可以在这种类型的数组上进行二分查找。这个想法类似于旋转排序数组中的二进制搜索 - https://www.geeksforgeeks.org/search-an-element-in-a-sorted-and-pivoted-array/

假设您需要在此搜索 40 --

  • 第一次迭代后 { 3 10 40 20 50 70 80 } -> { 3 10 40 20} 和 {50 70 80}。划分此数组时,您将需要边界条件。在这种情况下,需要检查 40 是否确实存在于第二个子数组中。
  • 第二次迭代。 -> { 3 10 40 20} -> {3,10} {40,20}。对于这里的第一个子阵列,需要应用相同的边界条件。

关于algorithm - 在一个数组中进行二进制搜索,除了两个元素之外,所有元素都被排序,即所有元素都被排序,然后交换两个相邻元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54662769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com