Я делаю программу, которая случайным образом генерирует числа в 100 строк по 15 в ListBox с помощью нажатия кнопки.Мне нужно, чтобы он сортировался от КРУПНЕЙШЕГО к МАЛЕНЬКОМУ, слева направо по строкам.У меня есть пузырьковая сортировка, но она сортируется по наименьшему и только по первому столбцу.
Вот как я получаю сгенерированные числа:
Private Sub btnGen_Click(sender As Object, e As EventArgs) Handles btnGen.Click
'Number Generator
Dim rn As New Random()
Dim array(14) As Integer
Dim temp As Integer
Dim st As String
For y As Integer = 1 To 100
For x As Integer = 1 To 15
array(x - 1) = rn.Next(100, 1000)
Next
txtList.Items.Add(ats(array))
Next
st = st & vbNewLine
Call sort()
Using fs As New FileStream(My.Settings.DAT_PATH, FileMode.Append, FileAccess.Write)
Using sw As New StreamWriter(fs)
sw.WriteLine()
End Using
End Using
End Sub
Function ats(ar As Integer()) As String
'FUNCTION for array to string seperated by comma
Dim sb As New System.Text.StringBuilder
For x As Integer = 0 To UBound(ar)
If x = UBound(ar) Then
sb.Append(ar(x).ToString)
Else
sb.Append(ar(x).ToString & ", ")
End If
Next
Return sb.ToString
End Function
Вот как я их сортирую:
Sub sort()
'bubble sort from biggest to smallest
txtList.Sorted = True
Dim array(14) As Integer
Dim temp As Integer
For ipass = 1 To UBound(array)
For i = 0 To UBound(array) - 1
If array(i) > array(i + 1) Then
temp = array(i)
array(i) = array(i + 1)
array(i + 1) = temp
array.Reverse()
End If
Next i
Next ipass
End Sub
Наконец, вот пример моеготекущие результаты:
107, 512, 139, 233, 582, 460, 698, 231, 395, 724, 717, 284, 699, 419, 825
119, 214, 513,382, 538, 161, 431, 603, 573, 354, 757, 307, 204, 906, 200
124, 493, 153, 507, 675, 878, 698, 911, 625, 171, 915174, 270, 629, 770
126, 585, 480, 317, 731, 193, 385, 143, 152, 374, 246, 124, 205, 347, 936
139, 497, 422, 381, 127, 968, 236, 637, 406, 758, 594, 944, 929, 733, 428
Любая помощь будет оценена