Сортировка данных – это упорядочивание набора однотипных данных по возрастанию или убыванию. К методам сортировки относятся: простой выбор, простой обмен, простые вставки, метод Шелла.
В методе простого выбора выделяется наименьший (или наибольший) элемент массива и отделяется от остальных. Далее опять выделяется наименьший (или наибольший) из оставшихся и т. д. Например, расположить элементы последовательности А1, А2, …, АN в порядке убывания. Для этого найдем в массиве элемент с наибольшим значением и поменяем его местами с первым элементом. Далее те же действия выполним с остальными N–1 элементами массива, затем N–2 элементами и т.д., пока не останется один элемент – последний, наименьший. Для получения результата необходимо N–1 раз найти максимальное значение в массиве, длина которого будет уменьшаться с каждым шагом на 1.
Упражнение 4. Отсортируйте по убыванию массив из пяти целых чисел, методом простого выбора.
1. Откройте проект Mas3, созданный в упражнении 3. Для кнопки Command2 измените значение свойства Caption:вместозначения “Результат” введите “Сортировка”.
|
|
2. В разделе General кода формы, к объявленным переменным, добавьте следующие переменные: Dim j As Integer, x As Integer. Переменные i и j будут использоваться как счётчики цикла For…Next и индексы массива. В переменных pr и x будем запоминать индекс массива и наибольшее значение соответственно.
3. Процедуру Command1_Click(), для командной кнопки “Ввод массива”, оставьте без изменения
4. В процедуре Command2_Click() массив будет отсортирован и выведен на форму. Для командной кнопки “Сортировка”, удалите программный код и введите следующий:
Private Sub Command2_Click()
'-------- Сортировка массива --------
For i = 1 To 5
pr = i: x =Mas(i) ' запоминаем индекс и значение элемента массива
For j = i + 1 To 5
If Mas(j) > x Then
pr = j: x = Mas(j) ' запоминаем индекс массива и наибольшее значение
End If
Next j
Mas(pr) = Mas(i): Mas(i) = x ' меняем местами элементы массива
Next i
'-----------------------------------------------
'------------- Вывод массива -------------
For i = 1 To 5
Print " "; Mas(i)
Next i
'-----------------------------------------------
End Sub
5. Сохраните проект с именем Sort в своей папке.
6. Запустите проект на выполнение. После щелчка на командной кнопке “Ввод массива” введите пять целых чисел. После щелчка на командной кнопке “Сортировка” – массив будет отсортирован по убыванию и выведен на форму.
Контрольные вопросы:
1. Что такое массив? Как в программе объявить массив?
2. Как обратиться к элементу массива?
3. Как организовать ввод и вывод массива?
4. В чём заключается алгоритм сортировки методом простого выбора?
Задания:
1. Создайте целочисленный массив и
- отсортируйте его по возрастанию;
- определите количество положительных элементов массива;
|
|
- найдите минимальное значение массива;
- определите количество отрицательных элементов массива;
- определите сумму ненулевых элементов массива;
- определите сумму положительных элементов массива;
- найдите максимальное значение массива.
Полученный результат вывести на форму.