Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информат.Лек.фр.doc
Скачиваний:
12
Добавлен:
10.11.2019
Размер:
5.51 Mб
Скачать

Лекция 9

9. Типовые алгоритмы

Vocabulaire

индикатор – indicateur (m) [эндикатор]

упорядочение, сортировка – rangement (m) [ранжэман]

упорядочение по возрастанию – rangement en accriossement [ранжэман ан аккруассман]

упорядочение по убыванию – rangement en décroissement [ранжэман ан дэкруассман]

расположение, размещение – disposition (f ) [диспозисъён]

пара – paire (f ) [пэр]

смежная пара – paire adjacente [пэр аджасант]

обмениваться (взаимный обмен) – échanger [эшанжэ]

матрица – matrice (f ) [матрис]

квадратная матрица – matrice carrée [матрис каррэ]

диагональ – diagonal (f ) [диагональ]

главная диагональ – diagonal generale [диагональ жэнэраль]

строка – ligne (f ) [линь]

столбец – colonne (f ) [колёнь]

выше, над – au – dessus [о дэссю]

ниже, под – au – dessous [о дэссу]

вложенный цикл – cycle encastré ) [сикль анкастрэ]

внешний цикл – cycle extérieur [сикль экстэръёр]

внутренний цикл – cycle inférieur [сикль энфэръёр]

внимание – attention (f ) [атансъён]

обратить внимание – faire attention [фэр атансъён]

переменная – variable (f ) [варьябль]

промежуточный (ая) – intermédiaire [энтермэдиэр]

промежуточная переменная – variable intermédiaire [варьябль энтермэдиэр] усеченный ряд – série tronquée [сэри тронкэ] .

9.1. Сортировка ряда чисел

Сортировка – это упорядочение (размещение) чисел по возрастанию или по убыванию их значений.

Существует несколько различных способов решения этой задачи, однако чаще всего используются:

  • метод смежных пар (метод "пузырька"),

  • метод поиска наименьшего (наибольшего) числа ряда.

9.1.1. Метод смежных пар

Алгоритм, реализующий метод смежных пар, основан на сравнении двух соседних чисел с последующей их перестановкой в случае, если они расположены не в требуемой очередности.

На рис.9.1 приведен алгоритм сортировки заданного ряда чисел по возрастанию. Для регулярного сравнения двух соседних чисел предусматривается циклический процесс. В заголовке цикла, в качестве параметра цикла, используется адрес числа с его областью изменения от до k = . Здесь следует обратить внимание на то, что правая граница области изменения параметра цикла i равна не n, а n-1. Это объясняется тем, что при сравнении двух соседних чисел адрес первого числа определяется значением параметра цикла i, а адрес второго числа вычисляется добавлением единицы (i+1). Если бы параметр цикла имел бы свое последнее значение n, а не n-1, то при i = n адрес второго числа определялся бы как i= n+1, а это уже выходит за пределы рассматриваемого ряда, и числа с таким адресом нет. Поэтому, чтобы исключить такую ситуацию, последнее значение параметра цикла принимается на единицу меньше.

В теле цикла происходит сравнение значений двух соседних чисел и , и в случае их неправильного расположения осуществляется их взаимная перестановка с помощью промежуточной переменной . Переменная используется с целью исключения потери значения одного из чисел при перестановке. Факт перестановки фиксируется с помощью переменной , которая играет роль индикатора, путем установки ей значения равной единице. Если же числа расположены в требуемой очередности, то их перестановка не производится. После завершения каждого цикла, на последнее место перемещается самое большое число из чисел, рассматриваемых в этом цикле. Кроме этого, проверяется состояние индикатора .

+

Рис. 9.1 Блок – схема сортировки чисел по возрастанию

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

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

Сортировка ряда чисел по убыванию выполняется аналогично. В этом случае в блок-схеме следует выполнить некоторые изменения. Так в операции сравнения соседних чисел необходимо знак " > " заменить знаком " < ".

Метод смежных пар экономичен с точки зрения расхода машинного времени. Если исходный ряд уже сортирован в требуемой последовательности, то достаточно выполнить только один проверочный цикл, чтобы убедиться, что индикатор не поменял своего начального значения 0.