【发布时间】:2019-10-29 18:27:07
【问题描述】:
任务是输出对数组进行排序所需的移位次数。 我的代码:
function runningTime(arr) {
var count=0;
var temp;
for(var i=1 ; i<arr.length; i++){
for(var j=0 ; j<i; j++){
if(arr[j]>arr[i]){
temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
count++;
}
}
}
return count;
}
console.log(runningTime([4, 4, 3, 4]));
它没有通过这个样本测试:4 4 3 4。 预期输出为 2 ,我的返回 1 , 为什么它应该返回 2 ?我错在哪里?
这里是问题的链接:insertion sort hackerrank problem
【问题讨论】:
-
这看起来像冒泡排序,而不是插入排序。
-
啊。你的比较是错误的。您需要将
arr[j]与arr[j+1]进行比较,而不是arr[i]。 -
是的,谢谢。明白了。
标签: javascript time insertion-sort