visual basic におけるクイックソートについて質問させていただきます。今回再起呼び出しを用いてクイックソートのプログラムを書きましたがエラー以前にフリーズして動かなくなる事象が発生しています。なお、今回は1~100000までの数字をランダムに20個生成することとし、そのプログラムは既に完成しています。以下作成したプログラムになります。修正よろしくお願いします。
Private Sub DivisionSort(minNo As Long, maxNo As Long) Dim i As Long = minNo Dim j As Long = maxNo Dim pivot As Integer = Data(Int((minNo + maxNo) / 2)) While i <= j While Data(i) < pivot And i < maxNo i = i + 1 End While While pivot < Data(j) And j > maxNo j = j - 1 End While Swap(i, j) End While If (minNo < j) Then DivisionSort(minNo, j) End If If (i < maxNo) Then DivisionSort(i, maxNo) End If End Sub Private Sub Swap(num1 As Integer, num2 As Integer) Dim temp As Integer temp = Data(num1) Data(num1) = Data(num2) Data(num2) = temp End Sub
回答1件
あなたの回答
tips
プレビュー