gpt4 book ai didi

javascript - 插入排序最后一项未定义

转载 作者:行者123 更新时间:2023-12-03 06:19:59 25 4
gpt4 key购买 nike

我正在练习 hackerrank,想要使用插入排序来处理数据结构。给定 String 类型数据结构:

6
1 4 3 5 6 2

我想从从值 1 开始的索引开始计数,因此计算索引 0 数组的大小和换行符,我应该从 2 开始。我想在每个循环中记录移动数组索引的每个步骤的输出左还是右。

function processData(input) {     
function sort(input) {
let values = input.split('\n')
values = values[1].split(' ').map(i => parseInt(i));
var length = values.length;
for(var i = 1; i < length; i++) {

console.log('input sort', values[i])
var temp = values[i] === undefined ? null: values[i];
var j = i - 1;
for(j; j >= 0 && values[j] > temp; --j) {
values[j+1] = values[j];
}
values[j+1] = temp;
var result = values.join(" ");

console.log(values);
}
// return values;
};
};

我的输出如下。注意尾随未定义。我对这些排序算法仍然很陌生,我希望有人能解释它的来源。

input sort 4
[ 1, 4, 3, 5, 6, 2 ]
input sort 3
[ 1, 3, 4, 5, 6, 2 ]
input sort 5
[ 1, 3, 4, 5, 6, 2 ]
input sort 6
[ 1, 3, 4, 5, 6, 2 ]
input sort 2
[ 1, 2, 3, 4, 5, 6 ]
undefined

我想要一个没有未定义字符的输出。

[ 1, 4, 3, 5, 6, 2 ]
input sort 3
[ 1, 3, 4, 5, 6, 2 ]
input sort 5
[ 1, 3, 4, 5, 6, 2 ]
input sort 6
[ 1, 3, 4, 5, 6, 2 ]
input sort 2
[ 1, 2, 3, 4, 5, 6 ]

最佳答案

这与你的算法无关。

您会在最后看到该部分,如下所示:

   // return values;

删除//

您在最后一行得到undefined,因为该函数没有返回值,并且您正在控制台中运行它。它不是来自您的 console.log 语句,而是来自打印最后一行执行结果的默认控制台行为。在本例中,最后一行是一个没有值的函数,会产生 undefined

关于javascript - 插入排序最后一项未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38921248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com