我的实现是否被视为插入排序?

时间:2017-09-25 23:07:17

标签: javascript algorithm sorting insertion

function insertionSort(ul){
    for(var i =0; i< ul.length; i++){
        for(var j = i-1; j<ul.length; j++){
            if(ul[j] > ul[j+1]){
            [ul[j],ul[j+1]] = [ul[j+1], ul[j]]
            }
        }

    }
    return ul
}

var ul = [5, 3, 1, 2, 4];  
console.log(insertionSort(ul));  

^我的implmentation是否被认为是插入排序,还是冒泡排序?

1 个答案:

答案 0 :(得分:0)

使用插入排序,排序过程完成,同时填充数组。因此,您的代码不是插入排序:它以已填充的数组开始。

您没有指定编程语言,但您的代码看起来非常奇怪的第一次测试:if (ul[-1] > ul[0]) ...(在运行时第一次进入嵌套循环时进行测试)。因此,也可能不是冒泡。你的实施应该得到改善。