1

これは非常に基本的な質問かもしれませんが、私はこれを理解することができないので、Javascript の Array.sort() 関数がここでどのように機能しているかを理解するのを手伝ってください。コードの予行演習を理解する必要があります。

var x = new Array(5,4,3,78,7,66,5,444,7,8,9,33,4,5,666,1);
console.log("Before = "+ x);
x.sort(
function(a, b){
    var m = a-b;
        console.log(a+" - "+b+" = "+m);
        return m;
    }
);
console.log("After = "+ x);

上記のコードを実行すると、次のような出力が見つかりました: (出力の数行を次に示します)

5 - 1 = 4 
1 - 7 = -6 
5 - 7 = -2 
3 - 5 = -2 
78 - 5 = 73 
666 - 5 = 661
etc....

最後に、ソートされた配列を昇順で出力しました。

After = 1,3,4,4,5,5,5,7,7,8,9,33,66,78,444,666 

「a」と「b」の値を取得する方法と、すべての操作を行う方法を教えてください。

4

1 に答える 1

2

さまざまなソート アルゴリズムがありますが、すべて (おそらくほとんどの場合) は 2 つの要素を比較する方法を必要とします。

ほとんどの言語の比較関数はこのように機能します。戻り値が正の場合は 2 番目の値が小さく、戻り値が負の場合は最初の値が小さくなります。ゼロの場合、それらは同じです。

JavaScript が使用する実際の並べ替えアルゴリズムは実装ごとに異なる可能性があり、1 つの実装または 1 つの並べ替えで複数の異なるアルゴリズムを使用する可能性があります。

Javascript Array.sort の実装も参照してください。

于 2013-02-07T08:58:51.967 に答える