氣泡排序法-複雜資料型態

Imports System ' 定義複雜資料型態 Structure DataNode Public Data As Integer Public Sequence As Integer End Structure Public Class Application ' 定義陣列變數 Private Shared myArray(10) As Object ' 初始陣列內容 Private Shared Sub InitArray Dim i As Integer Dim myDataNode As DataNode Dim myRandomNumber As New Random() For i = 1 To UBound(Me.myArray) myDataNode = New DataNode myDataNode.Data = myRandomNumber.Next(1, 100) myDataNode.Sequence = i myArray(i) = myDataNode Next End Sub ' 查詢陣列內容 Private Shared Sub ListArray() Dim i As Integer For i = 1 To UBound(Me.myArray) System.Console.WriteLine("{0:00}:{1:00}:{2:000}", i, Me.myArray(i).Sequence, Me.myArray(i).Data) Next End Sub ' 對調陣列元素內容 Private Shared Sub SwapArray(i As Integer, j As Integer) Dim tempValue As DataNode tempValue.Data = Me.myArray(i).Data tempValue.Sequence = Me.myArray(i).Sequence Me.myArray(i).Data = Me.myArray(j).Data Me.myArray(i).Sequence = Me.myArray(j).Sequence Me.myArray(j).Data = tempValue.Data Me.myArray(j).Sequence = tempValue.Sequence End Sub ' 處理陣列內容 - 氣泡排序法 Private Shared Sub ProcessArray() Dim i, j As Integer For i = 1 To UBound(Me.myArray) - 1 For j = i + 1 To UBound(Me.myArray) If Me.myArray(i).Data > Me.myArray(j).Data Then Call Me.SwapArray(i, j) End IF Next Next End Sub Public Shared Sub Main() ' 排序前 Call InitArray() Call ListArray() ' 排序後 Call ProcessArray() Call ListArray() End Sub End Class