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, minValuePos As Integer Dim tempValue As Integer For i = 1 To UBound(Me.myArray) - 1 tempValue = Me.myArray(i).Data minValuePos = i ' 找最小值及其陣列位置 For j = i + 1 To UBound(Me.myArray) If tempValue > Me.myArray(j).Data Then tempValue = Me.myArray(j).Data minValuePos = j End If Next If i <> minValuePos Then Call Me.SwapArray(i, minValuePos) End If Next End Sub Public Shared Sub Main() Call InitArray() Call ListArray() Call ProcessArray() Call ListArray() End Sub End Class