Назад на содержание Массивы в Basic


Общая информация

Ввод массива

Вывод массива

Поиск

Сортировка

Вычисление
колличественных

характеристик массива


Котрольные вопросы

Задания


Сортировка

Сортировка в массиве осуществляется следующим образом:

Под сортировкой понимают упорядочивание элементов. Возможны следующие виды сортировки:
- по возрастанию элементов (каждый следующий больше предыдущего);
- по убыванию элементов (каждый следующий меньше предыдущего);
- не убыванию элементов (каждый следующий больше или равен предыдущему);
- не возрастанию элементов (каждый следующий меньше или равен предыдущему).
Существует много алгоритмов сортировки. Разберём два из них: метод парных перестановок (пузырьковый) и метод прямого выбора.

Метод парных перестановок
Смысл этого метода заключается в сравнивании соседних элементов и, если нужно, их перестановке. Причём за один просмотр всех пар сортировка не достигает нужного результата. Приходится просматривать все пары элементов несколько раз.
Задача1. Отсортировать по возрастанию 8 элементов одномерного массива. Ввод массива осуществить любым способом.
Пусть массив называется M, счётчик элементов I, количество элементов в нём К, количество повторов для просмотра всех пар соседних элементов J, ячейка для обмена P. Формирование (ввод) и печать (вывод) массива рассматривались ранее. Поэтому подробно эти действия рассматриваться не будут.

Алгоритм. Программа.
  1. Объявить и сформировать массив.
  2. Отобразить исходный массив.
  3. Для каждого J от 1 до К-1 повторять:
  4. Для каждого I от 1 до К-1 повторять:
  5. Если M(I)>M(I+1) то:
  6. Присвоить P значение M(I)
  7. Присвоить M(I) значение M(I+1)
  8. Присвоить M(I+1) значение P
  9. Конец Если
  10. Конец Цикла по I
  11. Конец Цикла по J
  12. Отобразить отсортированый массив.
  13. Конец Алгоритма

В программе строки озачают следующее:
30: Объявление массива М
50:Присваивание элементам значений
60-90: Вывод исходного массива
100-140:Сортировка массива
150-190: Вывод отсортированного массива
10 REM"Метод пузырька"
20 k = 8
30 DIM M(k)
40 DATA 25,53,17,6,60,90,-38,44
50 READ M(1), M(2), M(3), M(4), M(5), M(6), M(7), M(8)
60 PRINT "Исходный массив"
70 FOR i = 1 TO k
80 PRINT M(i);
90 NEXT i
100 FOR j= 1 TO k - 1
110 FOR i = 1 TO k - 1
120 IF M(i) > M(i + 1) THEN P = M(i):
M(i) = M(i + 1):M(i + 1) = P
130 NEXT i
140 NEXT j

150 PRINT "Отсортированный массив"
160 FOR i = 1 TO n
170 PRINT M(i);
180 NEXT i
190 PRINT
200 END
Пример демонстрации работы сортировки методом пузырька:
На начало страницы
Hosted by uCoz