Тип данных Boolean. Значения True, False в Pascal.

Мы рассмотрели с Вами целый тип данных (integer), вещественный тип (real), символьный (char). В этом уроке мы рассмотрим тип данных, который имеет большое значение в программировании. Логический типBoolean. Одной из особенностей этого типа данных ...

Функции Sqr, Abs, Sqrt, Sin, Cos, Arctan, Ln, Exp, Pi в Pascal.

Мы уже знаем, какие существуют функции для целых переменных. Это – нахождение модуля числа (Функция Abc), а также возведение числа в квадрат (Функция Sqr). В этом уроке мы рассмотрим функции, применяемые к дробным числам. Это функции Sqr - квадрат ...

Операции умножения и сложения в Pascal.

В данном уроке мы рассмотрим операции умножения и сложения в Pascal. Умножение в Pascal обозначается знаком «*», а сложение - знаком «+».

Циклы и массивы

Манипулирование строками STRING.

В языке Паскаль при работе с текстами чаще всего используются короткие строки типа STRING. Стандартные процедуры READLN(St), WRITE(St) и WRITELN(St) поддерживают ввод и вывод строк переменной длины ...

Массив строк типа STRING.

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

Сортировка — перестановка местами объектов в определенном порядке. Известно несколько сотен алгоритмов сортировки и их модификаций.

Пусть дана последовательность элементов – A1, А2, …, Аn. Сортировка означает перестановку этих элементов в новом порядке Аk1 , Аk2, …, Akn. Этот порядок соответствует значениям некоторой функции F, такой, что справедливо отношение F(Ak1) < F(Ak2)< ... <F(Akn).
Как у любого вычислительного процесса у сортировки есть свои критерии для сравнительной оценки качества программы и соответствующего ей алгоритма. Такими критериями являются: объем используемой памяти и время работы программы. Хорошей по критерию памяти считается такая сортировка, при которой данные сортируются в том же самом массиве, где находились исходные данные.
При оценке времени сортировки используют два показателя: число сравнений ключей (С), число пересылок данных (М). Хорошими по времени считаются сортировки, в которых число сравнений С=N*Ln(N). К простым, то есть не очень хорошим, относятся такие сортировки, в которых число сравнений пропорционально квадрату размерности N исходного массива С?N2. Следует отметить, что показатели С и М существенно зависят от первоначальной упорядоченности сортируемого массива. Наиболее тяжелым (Мах) считается случай, когда массив упорядочен в обратном порядке. Ниже мы рассмотрим три наиболее известных способа сортировки одномерного массива. Сравнительные временные характеристи ки этих способов приведены в следующей таблице:

sortirovka massiv

Сортировка простым обменом. Метод пузырька.

Пример 32.  Методом пузырька упорядочить (отсортировать) в порядке возрастания массив из 8 целых чисел (44, 55, 12, 42, 94, 18, 06, 67).

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

sortirovka massiv.

Элементы всплывают вверх к поверхности в соответствии с их весами, пока не встретят элемент с более малым весом. С каждым проходом наиболее легкий элемент из оставшихся поднимается на свое место, показанное жирными цифрами. Таким образом, нет необходимости на каждом проходе проверять элементы, стоящие выше выделенных, поскольку они уже отсортированы ранее. Начиная с 6 прохода, состояние массива не изменяется, что объясняется начальной упорядоченностью элементов в исходном массиве.
Эта программа предназначена для изучения сортировки методом пузырька, поэтому взят массив из восьми целых чисел. Массив заранее известен, следовательно, инициализировать Х[1...8] проще всего в разделе констант. Ввод данных с клавиатуры в этой программе не требуется. Алгоритм программы представляет собой двойной вложенный цикл. Индекс I внешнего арифметического цикла соответствует номеру прохода сортировки. Индекс J это номер элемента в массиве. Для перестановки двух соседних элементов X[J-1] и X[J] местами используется промежуточная рабочая ячейка с идентификатором L. Для качественного обследования используется томография МРТ в Саратове адреса и отзывы указаны на сайте диагностического центра.


PROGRAM PR32;
CONST
X: ARRAY [1.. 8] OF INTEGER = (44, 55,12,42,94,18,06, 67);
VAR   
L, I, J: INTEGER;
BEGIN
{ Вывод на экран исходного массива X }
FOR I := 1 ТО 8 DO WRITE(X[I]:5);
WRITELN;
FOR      I := 2 TO 8
DO       FOR J:=8 DOWNTO I
             DO    IF X[J-1] > X[J]
                     THEN BEGIN {Переставить X[J-1] с Х[J] местами}
                       L:=X[J-1];
                       X[J-1]:=X[j];
                       X[J]:=L
                       END; {IF}
{ Вывод на экран отсортированного массива X }
FOR I := 1 ТО 8 DO WRITE(X[I]:5);
WRITELN
END.


sortirovka massiv..


Предыдущая статья: Поиск минимального и максимального элементов массива.
Оглавление: Лекции по Pascal.
Следующая статья: Сортировка простым включением и простым выбором.


Комментарии  

 
+3 # Даша 15.12.2012 13:41
спасибо, хорошо объяснено!
 
 
0 # Пример 23.07.2014 05:58
begin
for j:=1 to Ni-1 do
for i:=1 to Ni-j do
if Mi > Mi[i+1] then
begin
ti:=Mi;
Mi:=Mi[i+1];
Mi[i+1]:=ti;
end;

end;
 
 
-3 # Анатолий из Молодежк 30.10.2015 08:26
Деньги деньги деньги
 
 
0 # Даник 09.05.2016 16:48
Спасибо!
 
 
+2 # динил 13.11.2016 18:45
;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) :-* :oops: спс
 
   ГлавнаяПаскальЛекции по ПаскальОрганизация условного перехода. Оператор IF.