![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Поиск наибольших или наименьших элементов в массивах
Алгоритм поиска экстремальных значений в массиве состоит в следующем. Например, требуется определить максимальный элемент массива X. Принимаем первоначально за наибольший первый элемент массива X, присваивая его значение переменной Пример. В векторе
Sub Massiv10() Dim Y(l To 40) As Single Dim Max As Single 'Максимальный элемент Dim i As Integer Dim k As Integer 'Номер max элемента
'Ввод массива '---------------------
'Поиск максимального элемента Мах = Y(l) 'Начальное значение максимума к = 1 'Начальное значение номера max элемента For i = 2 To 40 If Y(i) > Max Then Max = Y(i) 'Новое значение максимума k = i 'Новый номер max элемента End If Next i End Sub
Если требуется определить наименьший элемент массива, то в условии If знак > нужно заменить на знак <.
Сортировка массивов
Сортировкой массива (или ранжирование) называется расположение элементов массива в порядке возрастания или убывания их значений (размещение элементов по рангу). Общий метод решения задачи ранжирования состоит в просмотре массива, сравнении друг с другом каждой пары рядом стоящих элементов и перемене их местами, если они стоят «не по рангу». Для решения задачи ранжирования можно использовать метод «пузырька». Суть метода состоит в следующем. Например, необходимо упорядочить массив X по возрастанию. Согласно методу «пузырька», последовательно просматривается массив, сравнивая каждый i -й его элемент со следующим
В результате выполнения одного цикла просмотра самый больший по значению элемент перемещается в конец массива. Отсюда и название метода, т.е. элемент массива, подобно пузырьку воздуха, «всплывает» наверх. Если в результате выполнения цикла просмотра, перестановок не произошло, то массив уже упорядочен. Если перестановки были, то следует повторить цикл просмотра, исключив последний элемент. Перестановки продолжаются до тех пор, пока в результате цикла просмотра не произойдет перестановок, т.е. переменная Flag примет значение False. Сравнение пар чисел Для программной реализации перестановки двух элементов используется следующий алгоритм обмена значений двух переменных А и В: значение переменной А запоминается во вспомогательной переменной С, затем переменной А присваивается значение переменной В, а переменной В - значение переменной С. Пример. Ранжировать в порядке возрастания вектор
Sub Massiv11() Rem Сортировка массива по возрастанию Dim A(1 To 20) As Single Dim С As Single 'Вспомогательная переменная Dim Flag As Boolean 'Флаг перестановок Dim i As Integer, n As Integer
'Ввод массива
'Включить генератор случайных чисел Randomize For i = 1 To 20 A(i) = Rnd 'MsgBox A(i) Next i
'Ранжирование массива n = 20 'Количество элементов в массиве Do Flag = False 'Перестановок не было n = n - 1 'Индекс последнего элемента при сравнении 'Цикл просмотра For i = 1 To n 'Проверка расположения элементов по рангу If A(i) > A(i + 1) Then 'Перестановка С = A(i) A(i) = A(i + 1) A(i + 1) = С Flag = True 'Произошла перестановка End If Next i Loop While Flag 'Перейти к началу цикла, 'если были перестановки
'Вывод отсортированного массива For j = 1 To 20 str_msg = str_msg & Chr(13) & A(j) & ", " Next 'вызываем стандартное диалоговое окно с кнопкой OK и помещаем надпись MsgBox "Введено: " & str_msg,, "Вывод ранее введенного массива" End Sub
Для ранжирования массива по убыванию в приведенном фрагменте программы достаточно в операторе If знак > поменять на знак <.
Кроме сортировки методом «пузырька» существует другие методы сортировки массивов, отличающиеся скоростью работы алгоритма.
|
||||||
Последнее изменение этой страницы: 2021-11-27; просмотров: 96; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.220.191.247 (0.01 с.) |