Сортировка массива. Рассмотрим задачу упорядочивания (сортировки) числового массива по возрастанию значений его элементов
Рассмотрим задачу упорядочивания (сортировки) числового массива по возрастанию значений его элементов. Пусть у нас имеется целочисленный массив arrA(bytI), состоящий из N элементов и заполненный случайными числами. Идея алгоритма состоит в следующем. Проводим поиск минимального элемента в массиве среди элементов с первого по N-й и меняем его местами с элементом с индексом 1, т.е. ставим минимальный элемент на первое место, далее находим минимальный элемент среди элементов со 2-го по N-й и ставим его на второе место и так повторяем процедуру N-1 раз (последний элемент не с чем сравнивать). В результате массив упорядочивается. Программный модуль формы должен содержать: событийную процедуру заполнения массива случайными числами, событийную процедуру сортировки и общую процедуру поиска минимального элемента:
Dim bytA(1 To 10), bytMin, bytI, bytJ, bytK, bytR, bytN As Byte
'общая процедура поиска минимального элемента
Sub МинЭлемент(bytJ, bytN As Byte)
bytMin = bytA(bytI)
bytN = bytI
For bytJ = bytI + 1 To 10
If bytA(bytJ) < bytMin Then
bytMin = bytA(bytJ)
bytN = bytJ
End If
Next bytJ
End Sub
'заполнение массива
Private Sub cmd1_Click()
txt1.Text = ""
For bytI = 1 To 10
bytA(bytI) = Int(Rnd * 10)
txt1.Text = txt1.Text + CStr(bytA(bytI))
Next bytI
End Sub
'событийная процедура сортировки
Private Sub cmd2_Click()
txt2.Text = ""
For bytI = 1 To 9
'вызов общей процедуры поиска минимального элемента
Call МинЭлемент(bytJ, bytN)
'перестановка
bytR = bytA(bytI)
bytA(bytI) = bytA(bytN)
bytA(bytN) = bytR
'печать массива для каждого цикла перестановки
Next bytI
For bytK = 1 To 10
txt2.Text = txt2.Text + Str(bytA(bytK))
Next bytK
End Sub
Private Sub cmd3_Click()
End
End Sub
Так же упорядочивание элементов массива можно произвести с помощью вложенных циклов.
Задача. Упорядочить по возрастанию элементы одномерного массива arrX(bytI), где xi=sini+cosi Алгоритм решения следующий:
Дата добавления: 2015-08-08; просмотров: 943;