2012年06月18日

Cyclesort、サイクルソートの実装

ソート・ルーチン (1)遅いソート・ルーチン
http://fussy.web.fc2.com/algo/sort1_slow_sort.htm

サイクルソートを説明している日本語のページが1つしか見つからなかったのだけれども、それが詳しく書いてあってありがたかった。というわけで、VBScriptで実装してみた。

Sub Cyclesort(ByRef a)
Dim i, c, j, t
i = 0
Do
c = i
For j = i + 1 To UBound(a)
If (a(i) > a(j)) Then
c = c + 1
End If
Next
If (c = i) Then
i = i + 1
If (i >= UBound(a)) Then
Exit Do
End If
Else
Do While (a(i) = a(c))
c = c + 1
Loop
t = a(c)
a(c) = a(i)
a(i) = t
End If
Loop
End Sub

ところで、リンク先のページでノームソートというのを初めて知ったのだけれども、いままでこれ挿入ソートだと思ってた。ノームソートを挿入ソートとして紹介しているページもたぶんあるはず。挿入ソートで交換を行うようにしたらノームソートになるのか。
posted by moritora at 00:48| Comment(0) | VBScript | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

×

この広告は90日以上新しい記事の投稿がないブログに表示されております。