重新排列旋转的排序数组

时间:2012-10-23 16:13:41

标签: arrays rotation sorting

我见过几个与旋转排序数组相关的问题,例如用于搜索pivot元素或搜索此类数组中的元素。

但是我没有发现任何与重新排列这样的数组到原始形式有关的问题而不使用排序。

所以我的问题是:*是否有一种有效的方法或技巧,可以在不使用额外内存的情况下将旋转的排序数组重新排列为原始形式?

1 个答案:

答案 0 :(得分:0)

继承人我会做什么.. 我会找到使用二进制搜索变体的起始元素。

一旦找到,如果可以使用外部存储器,可以在O(n)中完成 所以总时间是O(lgn)+ O(n),即O(n)

特别是轮换:看到ajay的评论,我同意,因为我们必须轮换到位,最好的选择是冒泡排序。其中是O(n * m),其中m是旋转的元素数。

但是如果我们可以使用一些存储来保持元素位于起始元素的任何一侧,基本上,如果我们可以使用外部存储器,那么只需将每个元素放在新数组中的正确位置即可。

相关问题