Реализация

Вывод массива, удобный для пользователя

Задача. Распечатать двумерный массив размерности MxN удобным для пользователя способом. (Известно, что массив содержит только целые числа из промежутка [0..100].)

Алгоритм. Понятно, что если весь массив мы вытянем в одну строчку (или, того хуже, в один столбик), то хороших слов в свой адрес мы от пользователя не дождемся. Именно поэтому нам нужно вывести массив построчно, отражая его структуру.

for i:= 1 to n dobegin for j:= 1 to m do write(a[i,j]:4); writeln;end;

1) См. лекцию 2.
2) Читается "сигнум" от лат. слова signum (знак).
3) Напоминаем, что жирная квадратная скобка является обязательным элементом синтаксиса.
4) См. лекцию 7.
5) См. лекцию 12.
6) См. лекцию 6.
7) Матрица - двумерная таблица, состоящая из чисел.
8) Жирные квадратные скобки являются обязательным элементом синтаксиса.
9) См. лекцию 6
10) См. лекцию 5.
11) В противовес алгоритмам рекурсивным - см. лекцию 9
12) Исключение из этого правила см. п. "Break и continue"
13) В поздних версиях языка.
14) См. лекцию 1.

 

4. Лекция: Сортировки массивов:
Простые и улучшенные методы упорядочения данных.

Задача сортировки

Эта лекция посвящена сугубо алгоритмической проблеме упорядочения данных.

Необходимость отсортировать какие-либо величины возникает в программировании очень часто. К примеру, входные данные подаются "вперемешку", а вашей программе удобнее обрабатывать упорядоченную последовательность. Существуют ситуации, когда предварительная сортировка данных позволяет сократить содержательную часть алгоритма в разы, а время его работы - в десятки раз.

Однако верно и обратное. Сколь бы хорошим и эффективным ни был выбранный вами алгоритм, но если в качестве подзадачи он использует "плохую" сортировку, то вся работа по его оптимизации оказывается бесполезной. Неудачно реализованная сортировка входных данных способна заметно понизить эффективность алгоритма в целом.

Методы упорядочения подразделяются на внутренние (обрабатывающие массивы) и внешние (занимающиеся только файлами)1).

Эту лекцию мы посвятим только внутренним сортировкам. Их важная особенность состоит в том, что эти алгоритмы не требуют дополнительной памяти: вся работа по упорядочению производится внутри одного и того же массива.