任务是输出对数组进行排序所需的移位数。我的代码:
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
您的代码不是选择排序。插入排序的想法是尝试搜索在i之前但不小于i的最后位置的j并交换它们。每个值大于i就是一次移位。试试这个。