在准备技术面试时,我偶然发现了这个有趣的问题:
您已经获得了一个已排序然后旋转的数组.
例
让arr = [1,2,3,4,5]哪个被排序然后旋转说两次给右边
arr = [1,2,3,4,5]
[4,5,1,2,3]
现在,如何在这个已排序+旋转的数组中进行最佳搜索?
可以取消旋转数组,然后进行二分查找.但这并不比在输入数组中进行线性搜索更好,因为两者都是最坏的情况O(N).
请提供一些指示.我已经搜索了很多特殊算法,但找不到任何算法.
我理解c和c ++
c c++ arrays algorithm
algorithm ×1
arrays ×1
c ×1
c++ ×1