インスパイア元 → ソートなんかしていないんですけど
もっすぬごいソート・アルゴリズムを編み出してしまいました。
その名も「チルノ・ソート」
Module CirnoSort
' 配列内に対象があればTrue
Function あった(ByVal 配列() As Integer, ByVal 対象 As Integer) As Boolean
For Each 値 As Integer In 配列
If 値 = 対象 Then
Return True
End If
Next
Return False
End Function
Sub Main()
Dim N As Integer = 10
Dim ソート対象(N) As Integer
Dim 乱数 As Random = New Random(DateTime.Now.Millisecond)
Dim 添え字 As Integer
Dim 値 As Integer
' 対象初期化
For 添え字 = 0 To N - 1
ソート対象(添え字) = 乱数.Next(1, 100)
Next
'表示
For Each 値 In ソート対象
Console.Write("{0} ", 値)
Next
Console.WriteLine(vbCrLf & "------------------")
' ソート対象内の最小値/最大値を求めておく
Dim 最小値 As Integer = ソート対象(0)
Dim 最大値 As Integer = ソート対象(0)
For Each 値 In ソート対象
If 最小値 > 値 Then 最小値 = 値
If 最大値 < 値 Then 最大値 = 値
Next
'ソート(あたいったら最強ね!)
For 値 = 最小値 To 最大値
If あった(ソート対象, 値) Then
Console.Write("{0} ", 値)
End If
Next
Console.WriteLine(vbCrLf & "------------------")
Console.ReadKey()
End Sub
End Module
ソート対象内の要素の重複が許されませんがそこはご勘弁(チルノだから)。
...のんちゃん、お願いだから真に受けないでね。