Упорядочение элементов заданной строки по возрастанию - VB
Формулировка задачи:
Упорядочение элементов заданной строки по возрастанию.
Решение задачи: «Упорядочение элементов заданной строки по возрастанию»
textual
Листинг программы
Private Sub Command1_Click()
Dim A() As Long, StrA() As Long
Dim n As Long, m As Long, nSort As Integer, i As Integer, j As Integer
AutoRedraw = True: Randomize
Cls
n = InputBox("Введите размер матрицы (строк)", , 10)
m = InputBox("Введите размер матрицы (столбцов)", , 12)
ReDim A(1 To n, 1 To m), StrA(1 To m)
Print "Исходная матрица :"
For i = 1 To n
For j = 1 To m
A(i, j) = Rnd * 100
Print A(i, j); vbTab;
Next j
Print
Next i
nSort = InputBox("Введите номер строки для сортировки", , 1)
For j = 1 To m
StrA(j) = A(nSort, j)
Next j
Selectionsort StrA(), 1, m
For j = 1 To m
A(nSort, j) = StrA(j)
Next j
Print
Print "Результат :"
For i = 1 To n
For j = 1 To m
Print A(i, j); vbTab;
Next j
Print
Next i
End Sub
' ************************************************
' Selectionsort.
' ************************************************
Public Sub Selectionsort(List() As Long, min As Long, max As Long)
Dim i As Long
Dim j As Long
Dim best_value As Long
Dim best_j As Long
For i = min To max - 1
' Find the smallest remaining item.
best_value = List(i)
best_j = i
For j = i + 1 To max
If List(j) < best_value Then
best_value = List(j)
best_j = j
End If
Next j
' Swap it into position.
List(best_j) = List(i)
List(i) = best_value
Next i
End Sub