Сортировка массива

Рассмотрим задачу упорядочивания (сортировки) числового массива по возрастанию значений его элементов. Пусть у нас имеется целочисленный массив 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 Алгоритм решения следующий: