【发布时间】:2020-10-27 20:49:35
【问题描述】:
这些是 3 个测试用例,除了一个不合适的元素外:
{-17, -5, -5, -2, 1, 17, 289, 17, 17, 395} |不合适的元素索引为 6。
{289, 17, 17, 17, 100, 250, 300, 1000, 5000} |不合适的元素索引为 0。
{-1, 23, 70, 500, 1000, 7000, 23520, 10} |不合适的元素索引为 7。
这是我目前的代码:
int outlier;
int size = sizeof(arr) / sizeof(int)
for (int i = 0; i < size - 1; i++) {
if (arr[i] > arr[i + 1])
outlier = i;
}
对于第一个测试用例,异常值是 6,这是正确的。对于第二个测试用例,异常值为 0,这也是正确的。但是,当我在第三个数组上尝试它时,我得到的异常值是 6,这不是元素在不正确位置的位置。它应该等于 7。目标是编写一个函数来:a) 查找未排序元素的索引 b) 对数组进行排序。
【问题讨论】:
-
如果你的算法永远不会返回
size-1(这是你的7),你如何期望它? -
抱歉打错字了。它应该是 70。我只是编辑它以反映更正。
-
刚刚改了,谢谢,但变量异常值仍然被赋值为 6 而不是 7。@EugeneSh。