シェルソート     Last modified: May 15, 2002
# shell_sort
# 配列 a[0] 〜 a[n-1] に n 個の数値データが入っているのを整列させる
# 使用例: shell_sort(n, a)

function shell_sort(n, a,     h, i, j, x)
{
   h = 13
   while (h <= n) {
       h = 3*h+1
   }
   h = int(h/9)
   while (h > 0) {
       for (i = h; i < n; i++) {
           x = a[i]
           for (j = i-h; j >= 0 && a[j] > x; j -= h) {
               a[j+h] = a[j]
           }
           a[j+h] = x
       }
       h = int(h/3)
   }
}

・ 直前のページへ戻る  ・ E-mail to Shigenobu AOKI