排序数组的一部分被反转

Part of a sorted array is reversed

本文关键字:一部分 数组 排序      更新时间:2023-10-16

给定一个已排序的数组,其中一部分是反向的。我们被要求完全分类。例如:

ip - 2 4 5 7 13 11 9 14 19
op - 2 4 5 7 9 11 13 14 19

当我们知道给定数组是按升序还是降序排序时,这很容易解决。如果不知道阶数,怎么解?

,

ip - 19 17 2 6 8 10 1
op - 19 17 10 8 6 2 1
当输入的第一部分是升序而其余部分是降序时,

也会产生歧义。在这种情况下,可以考虑输出任何顺序。

  1. 假设最终结果应该是升序的。运行你的算法一次。
  2. 检查输出是否为升序。如果是,我们就完成了;否=> 3
  3. 回滚到原始输入,假设最终结果应该下降,运行你的算法一次。
  4. 检查输出是否真的降序。如果是,我们就完成了;