Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 已排序数组的一部分被反转_C++_C_Arrays_Algorithm_Sorting - Fatal编程技术网

C++ 已排序数组的一部分被反转

C++ 已排序数组的一部分被反转,c++,c,arrays,algorithm,sorting,C++,C,Arrays,Algorithm,Sorting,给定一个已排序数组,其中一部分是反向的。我们必须对它进行彻底分类。 例如: 当我们知道给定的数组是按升序还是降序排序时,就很容易求解。如果我们不知道顺序,如何求解 例如: 当输入的第一部分按升序排列,其余部分按降序排列时,也会出现歧义。在这种情况下,输出可以考虑任何顺序 假设最终结果应该是递增的。运行您的算法一次 检查输出是否真的在上升。如果是,我们就完成了;如果没有,请转到3 回滚到原始输入,假设最终结果应该是递减的,运行您的算法一次 检查输出是否真的在下降。如果是,我们就完成了;如果否,则输

给定一个已排序数组,其中一部分是反向的。我们必须对它进行彻底分类。 例如:

当我们知道给定的数组是按升序还是降序排序时,就很容易求解。如果我们不知道顺序,如何求解

例如:

当输入的第一部分按升序排列,其余部分按降序排列时,也会出现歧义。在这种情况下,输出可以考虑任何顺序

  • 假设最终结果应该是递增的。运行您的算法一次
  • 检查输出是否真的在上升。如果是,我们就完成了;如果没有,请转到3
  • 回滚到原始输入,假设最终结果应该是递减的,运行您的算法一次
  • 检查输出是否真的在下降。如果是,我们就完成了;如果否,则输入是非法的
  • 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