§Algorithm§


☆バブルソート☆


 整数の配列変数を大きいもの順,または小さいもの順に並び替えたい時、 最も簡単で単純な方法がバブルソートと言われる方法です。
 このソート法は、次の図のような方法で並び替えるので比較と入れ替えの 回数が非常に多くなります。そのため配列の要素が多くなると速度的に 限界がありますが、最も理解しやすいものでもあります。 要素が少ないときは、このソートでも問題ありません。

Visual Basicのプログラムコードでは以下のようにまとめられます。

'===========================================================
'BubbleSort   指定された配列の整数をソートする
'---------引数----------------------------------------------
'data()   ここのデータをソートする
'Count    要素の数
'flag     True-昇順ソート,False-降順ソート
'===========================================================
Public Sub BubbleSort(data() As Integer, Count As Integer, _
                      flag As Boolean)
    Dim i As Integer, j As Integer
    Dim temp As Integer

    j = 0
    If flag = False Then '昇順ソート
        '要素0から順に直接的にソートする
        Do While j < Count - 1
            i = j + 1
            Do While i < Count
                If data(j) > data(i) Then
                    temp = data(j)
                    data(j) = data(i)
                    data(i) = temp
                End If
                i = i + 1
            Loop
            j = j + 1
        Loop
    Else '降順ソート
        Do While j < Count - 1
            i = j + 1
            Do While i < Count
                If data(j) < data(i) Then
                    temp = data(j)
                    data(j) = data(i)
                    data(i) = temp
                End If
                i = i + 1
            Loop
            j = j + 1
        Loop
    End If
End Sub

昇順ソートと降順ソートの違いは、<,>の部分だけなんですけど・・・。


(サンプルプログラムの動作確認)

機種 PC-9821V13S
OS Windows95
開発ツール Visual Basic Ver.4.0
更新日 99/12/16

ダウンロード BSort.lzh(2.16KB)

Visual Basic Ver.5.0,Ver.6.0でも問題なく動作すると思います。
なお、このコーナーに掲載されているプログラムコード、およびプログラムファ イルが原因で起きた損害などに関して一切の責任を負うことはできません。

★このコーナーに掲載されているプログラムコード、およびプログラムファ イルを無断で配布・転載することは、原則として禁止です。


Algorithmインデックス トップ


Copyright(C)1999 Tomoya. All rights reserved.