Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Обменная сортировка




Простая обменная сортировка (в просторечии называемая "методом пузырька") для массива 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 фамилий студентов вашей группы и посмотрите как работает программа.

è Сохраните файл под именем «Сортировка списка методом «пузырька»»


Поделиться:

Дата добавления: 2014-11-13; просмотров: 141; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.005 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты