Обменная сортировка
Простая обменная сортировка (в просторечии называемая " методом пузырька") для массива a[1], a[2],..., a[n] работает следующим образом. Начиная с конца массива, сравниваются два соседних элемента (a[n] и a[n-1]). Если выполняется условие a[n-1] > a[n], то значения элементов меняются местами. Процесс продолжается для a[n-1] и a[n-2] и т.д., пока не будет произведено сравнение a[2] и a[1]. Понятно, что после этого на месте a[1] окажется элемент массива с наименьшим значением. На втором шаге процесс повторяется, но последними сравниваются a[3] и a[2]. И так далее. На последнем шаге будут сравниваться только текущие значения a[n] и a[n-1]. Понятна аналогия с пузырьком, поскольку наименьшие элементы (самые " легкие") постепенно " всплывают" к верхней границе массива.
è Блок-схема
Составим блок-схему процедуры сортировки списка группы
è Примерный интерфейс программы может выглядеть так:
è Код программы: Dim Spisok() As String Dim Kolichestvo As Integer Private Sub cmdStart_Click() Dim i As Integer Call VvodSpiskaGruppy Call SortirovkaSpiskaGruppy For i = 1 To Kolichestvo lstSortSpisok.AddItem Spisok(i) Next End Sub
Sub VvodSpiskaGruppy() Dim i As Integer Kolichestvo = InputBox(" Введите количество студентов в Ä группе", ”Ввод числа”) lblKolichestvo.Caption = Str(Kolichestvo)+” человек(а)” ReDim Spisok(Kolichestvo) For i = 1 To Kolichestvo Spisok(i)=InputBox(" Введите фамилию и инициалы Ä " +Str(i)+" студента группы", " Ввод ФИО") lstNeSortSpisok.AddItem Spisok(i) Next End Sub
Sub SortirovkaSpiskaGruppy() Dim i As Integer Dim j As Integer Dim Temp As String For i = 1 To Kolichestvo–1 For j = i+1 To Kolichestvo If Spisok(i) > Spisok(j) Then Temp = Spisok(i): Spisok(i) = Spisok(j): Ä Spisok(j) = Temp End If Next Next End Sub
è Введите 10 фамилий студентов вашей группы и посмотрите как работает программа. è Сохраните файл под именем «Сортировка списка методом «пузырька»»
|