2016-11-22 82 views
1

這裏是鏈接到我的JavaScript Insertion Sort AlgorithmJavaScript的算法插入排序稍微偏離

很簡單,我只是想不通,爲什麼我不能讓那個討厭的ARR [0]得到正確排序。我嘗試了我所知道的一切。 嘆息

雖然它是非常接近。

任何想法的

var aoo = [5,2,4,6,1,3]; 
 

 
function jInsertionSort(a) { 
 
    for(var j=2; j<a.length; j++){ 
 
    //console.log(j); 
 
    var key = a[j]; 
 
    var i = j - 1; 
 
    while (i > 0 && a[i] > key) { 
 
     a[i+1] = a[i]; 
 
     i = i-1; 
 
    } 
 
    a[i+1]=key; 
 
    } 
 
    return a; 
 
} 
 

 
var aooSorted = jInsertionSort(aoo); 
 

 
console.log("jInsertionSort = ["+aooSorted+"]");

JavaScript Insertion Sort Algorithm

回答

1

你幾乎得到了它,這個工程:

var aoo = [5,2,4,6,1,3]; 
 

 
function jInsertionSort(a) { 
 
    for(var j=1; j<a.length; j++){ 
 
     var key = a[j]; 
 
     var i = j; 
 
     while (i > 0 && a[i-1] > key) { 
 
      a[i] = a[i - 1]; 
 
      a[i - 1] = key; 
 
      i = i-1; 
 
     } 
 
    } 
 
    return a; 
 
} 
 

 
var aooSorted = jInsertionSort(aoo); 
 

 
console.log("jInsertionSort = ["+aooSorted+"]");

+0

我upvoted你的答案,因爲它比短分鐘並且運作良好。我不能說OP,我非常懷疑他花時間檢查我是從墨西哥來的。只是很冷,我甚至沒有得到那麼多的觀點 – nottu

0

var aoo = [5,2,4,6,1,3]; 
 

 
function jInsertionSort (a) { 
 
    for (var i = 0; i < a.length; i++) { 
 
    var k = a[i]; 
 
    for (var j = i; j > 0 && k < a[j - 1]; j--) 
 
     a[j] = a[j - 1]; 
 
    a[j] = k; 
 
    } 
 
    return a; 
 
} 
 

 
var aooSorted = jInsertionSort(aoo); 
 

 
console.log("jInsertionSort = ["+aooSorted+"]");