2017-09-25 55 views
0
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)); 

^我的暗示是否考虑过插入排序,还是泡泡排序?我的实现是否考虑插入排序?

回答

0

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

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