我的实现是否考虑插入排序?
问题描述:
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));
^我的暗示是否考虑过插入排序,还是泡泡排序?我的实现是否考虑插入排序?
答
使用插入排序,排序过程完成而填充数组。因此,您的代码不是插入排序:它从已经填充的数组开始。
您没有指定编程语言,但是您的代码看起来非常奇怪:if (ul[-1] > ul[0]) ...
(第一次运行时进入嵌套循环测试)。因此,这也可能不是冒泡排序。您的实施应该改进。