算法Hackkerrank插入排序问题的运行时间

问题描述 投票:0回答:1

任务是输出对数组进行排序所需的移位数。我的代码:

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

javascript time insertion-sort
1个回答
0
投票

您的代码不是选择排序。插入排序的想法是尝试搜索在i之前但不小于i的最后位置的j并交换它们。每个值大于i就是一次移位。试试这个。

© www.soinside.com 2019 - 2024. All rights reserved.