2017-09-25 54 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]) ...(第一次運行時進入嵌套循環測試)。因此,這也可能不是冒泡排序。您的實施應該改進。