2017-04-14 56 views
0

我需要在javaScript中按降序對簡單數組進行排序,而無需使用內置方法,並且已花費太多時間...請幫助按降序對數組進行排序javascript不使用內置方法

function dscSort(array) { 
    for (var i = 1; i < array.length; i++) { 
     var tmp = array[i]; 
     for (var j = i - 1; j >= 0 && (array[j] < array[i]); j--) { 
      array[j + 1] = array[j]; 
     } 
     array[j + 1] = tmp; 
    } 
    return array; 
} 
+0

你是什麼意思的「就緒功能」 – inoabrian

+0

像我不能使用array.sort(),但必須寫它像我剛纔那樣,但它不工作 – Mary

+0

爲什麼不檢查快速排序。 https://en.wikipedia.org/wiki/Quicksort – inoabrian

回答

0

該方法是正確的。你在代碼中只有一個小錯誤。取而代之的是:

for (var j = i - 1; j >= 0 && (array[j] < array[i]); j--) { 

這樣做:

for (var j = i - 1; j >= 0 && (array[j] < tmp); j--) { 

這是必要的,因爲在array[i]值可能會被覆蓋與array[i-1]在第一次迭代,所以在接下來的迭代中,你會尋求在錯誤的價值。

+0

你是對的,謝謝! – Mary

相關問題