Структура приложения
Таблица свойств объектов
Объект |
Название |
Другие свойства |
RadioButton |
rdbmax |
Text: Min->Max(A-z) |
rdbmin |
Text: Max->Min(z-A) |
|
rdbName |
Text: Name |
|
rdbPrice |
Text: Price |
|
rdbCount |
Text: Count |
|
Button |
buttonSort |
Text: Sortme |
ComboBox |
cmbSort |
Text: std::sort line selection |
GroupBox |
GroupBox1 |
Text:Set the type of sort |
GroupBox2 |
Text: Sortby |
|
ListView |
lvList |
- |
|
|
|
Таблица идентификаторов
Область видимости
Назначение
Идентификатор
Тип
boolCondition()
переменная названия товара
x
int
переменная номера товара
p
int
переменная цикла
j
int
переменная цены товара
max
int
boolGreater()
переменная номера товара
p
int
переменная цикла
j
int
переменная цены товара
max
int
sort1()
переменная товара
x
int
sort2 ()
переменная максимального значения
max
int
переменная шага в цикле
j
int
переменная шага в цикле
i
int
количество элементов массива
N
int
Функциональное описание
boolCondition() - функция состояния товара. В данной функции определяются переменные, которыми впоследствии будут обозначаться атрибуты товара(название,цена ,количество). Также определена переменная «х» для номера товара, и условие, что под каждым номером должны быть записаны определенные данные (в соответствии с атрибутами).
Vivod() – функция вывода.
Создается цикл вывода сортируемых элементов, создан счетчик номеров товаров (т.е. товарам номер не присваивается, а изменяется динамически при выборке).
Form1_Load() – функция загрузки главной формы.
В функции получаем количество сортируемых элементов и выводим на форму товары и их атрибутами случайным образом.
btnSort_Click() – функция события нажатия кнопки «Sortme».
Проверяются условия:
Какой тип сортировки выбрал пользователь.
Какое поле выбрано в качестве сортируемого.
Ранжирование значений полей(от максимального к минимальному и наоборот).
В условиях вызываются функции сортировок sort1() и sort2(). Отсортированная информация заново выводится на форму (вызов vivod()). Считается время(GetSystemTime).
Sort1()- функция алгоритма сортировки методом std::sort.
Sort2()-функция алгоритма сортировки методом линейного выбора с обменом.
В начале первого просмотра предполагается, что первый элемент списка имеет наименьший ключ. Этот ключ вместе с адресом пересылается в рабочую память, где сравнивается со всеми линейными преемниками до тех пор, пока не встретится меньший ключ. Меньший ключ и его адрес становятся содержимым рабочей области памяти. Сравнения продолжаются при новом содержимом рабочей памяти. Пересылка выполняется всегда, когда в списке встречается ключ, который меньше ключа в рабочей памяти. Таким образом, в рабочей памяти всегда расположен наименьший из уже просмотренных ключей. Просмотр заканчивается по достижении конца списка. До этого момента процесс идентичен простому линейному выбору. Сортировка обменом отличается следующим шагом. По окончании первого просмотра запись, ключ которой расположен врабочей памяти, переставляется с записью из вершины списка. Теперь наименьшая величина в списке занимает первую позицию. Второй просмотр идентичен первому с той лишь разницей, что вторым по величине считается второй ключ, так как первым стоит наименьший элемент. Первая позиция исключается из процесса. По окончании второго просмотра вторая запись с наименьшим ключом помещается во вторую позицию списка. Третий просмотр начинается сравнением ключа из третьей позиции и т. д. Эта процедура заканчивается, когда свое место занимает (N—1)-я запись.
Этапы алгоритма:
1. Значение первого элемента принимается за минимальное значение всего массива.
2. Данный минимальный элемент сравнивается с другими элементами всего массива.
3. Если находится элемент меньше заданного минимального элемента, то в качестве наименьшего принимается меньший из них.
4. Просмотр заканчивается по достижении конца списка.
5. Минимальный элемент массива переставляется с элементов вершины списка, т.е.
наименьшая величина в списке занимает первую позицию.
6. Второй и последующие просмотры идентичны первому с той лишь разницей, что вторым
по величине считается второй элемент, третий – третьим и т.д.
7. Процедура заканчивается, когда свое место занимает (N – 1)-й элемент массива.
