2017-04-14 51 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

相关问题