配列をソートして印字

【Source Code】
<script type="text/javascript">
function Sort(t, num)
{   if (num>1)
    {   Max(t,num);
        Sort(t,num-1);
    }
}
function Max(t, num)
{   var w;
    if (num<2)  return;
    Max(t,num-1);
    if (t[num-2]>t[num-1])
    {   w= t[num-2];
        t[num-2]= t[num-1];
        t[num-1]= w;
    }
}
</script>
</head>

<body>
<script type="text/javascript">
var t= new Array();
for(i=0; i<5; i++)
    t.push(Math.floor(Math.random() * 100)+1);
Sort(t, 5);    
document.write(t + "<br>");
</script>

配列に格納した5件のデータを隣接交換法を使って、再起メソッドでソートします。
  1. 配列を var t= new Array(); で定義します。
  2. t[] に乱数を使って5件のデータを格納します。
    for(i=0; i<5; i++)
        t.push(Math.floor(Math.random() * 100)+1);
    
  3. t[] を Sort() 関数で昇順にソートして印字します。
    Sort(t, 5);    
    document.write(t + "<br>");
    </script>
    
  4. Sort 関数は Max 関数の助けを借りてをソートします。
    Sort 関数の中から Sort 関数を呼び出していることに注目して下さい。
  5. Max 関数は num 個の中の一番大きい値が配列の最後(t[n-1])に来るように入れ替える関数です。
    Max 関数の中から Max 関数を呼び出していることに注目して下さい。
  6. Max 関数では n<2 になるまで Max 関数を呼び続けます。
    n<2 になると return; で1レベル戻るのですが、ここからが Max 関数の本領発揮です。 (^_^;)
    function Max(t, num)
    {   var w;
        if (num<2)  return;
        Max(t,num-1);
    
  7. t[num-2] と t[num-1] を比較して t[num-2] の方が大きい時は入れ替えます。
        if (t[num-2]>t[num-1])
        {   w= t[num-2];
            t[num-2]= t[num-1];
            t[num-1]= w;
        }
    

前田稔の超初心者のプログラム入門
超初心者のプログラム入門(JavaScript)