Пример. Сортировка обменом по возрастанию массива a из n целых чисел.
Рrogram Sort_Obmen;
var а:array[1..100] of integer;
n,i,k,x : integer;
begin write('количество элементов массива ');
read(n);
for i:=1 to n do read([i]);
for k:=n-1 downto 1 do {количество сравниваемых пар}
for i:=1 to k do if a[i]>a[i+1] then {меняем местами соседние элементы}
begin
x:=a[i];
a[i]:=a[i+1];
a[i+1]:=x;
end;
for i:=1 to n do write(a[i],' '); {упорядоченный массив}
end.
Наряду с сортировкой методом пузырька, существуют и некоторые другие, более эффективные методы сортировки: быстрая сортировка, метод Шелла, сортировка вставками... Однако рассмотренный алгоритм наиболее прост в реализации и логичен.
Приведем, тем не менее, процедуру "быстрой сортировки", которая шаг за шагом ищет максимальный, второй по величине и т.д. элементы и переносит: их в конец массива. Остановка цикла произойдет тогда, когда при очередном проходе не произойдет (т.е., элементы встали на свои места):
Имя фала: FastSort.pas
Procedure FastSort(Var aa:Massive);
Var ii,kk,nn:byte;
Begin
nn:=n;
Repeat
For ii:=1 to nn-1 Do Begin
kk:=0
If (aa[ii]>aa[ii+1]) Then Begin
Swap (aa[ii],a[ii+1]);
Inc(kk);
End;
End;
Dec(nn);
Until(kk=0);
End;
В то время, как при сортировке предыдущем методом для массива из 10 элементов понадобится 9 проходов, для данного алгоритма это число может уменьшиться. К примеру, массив из значений (1,-3,7,-10,11,4,-6,2,5,-4) будет отсортирован за 8 проходов, а массив (1,4,3,2,4,5,6,7,10,11) – всего за 1.
Следуя похожей, логике отсортируем массив по возрастанию:
Имя фала: Sort_Inc.pas
Procedure Sort_Inc(Var aa:Massive);
Var ii,kk:byte;
Begin
For kk:=1 to n-1 Do Begin
For ii:=1 to n-kk Do Begin
If (aa[ii]>aa[ii+1]) Then Begin
Swap (aa[ii],a[ii+1]);
End;
End;
End;
End;
Yandex.RTB R-A-252273-3
- Министерство образования и науки рф
- Оглавление
- 6.Проверка адекватности модели 48
- 7.Анализ результатов моделирования 49
- Лекция 1 Предмет информатики. Основные составные части персонального компьютера. Понятие и представление информации. Принципы организации порядковых систем счисления.
- Понятие информатика
- Понятие информации
- Представление данных в пэвм
- Представление информации в компьютере
- Принципы организации порядковых систем счисления
- Позиционные и непозиционные
- Правила перехода из системы в систему Алгоритм перевода целых чисел из системы с основанием р в систему с основаниемq:
- Алгоритм перевода целого числа из десятичной системы счисления в систему счисления с произвольным основанием (р)
- Алгоритм перевода целого числа из системы счисления с произвольным основанием (р) в десятичную систему счисления
- Перевод дробных чисел из одной системы счисления в другую Алгоритм перевода правильной дроби с основанием р в дробь с основаниемq
- Алгоритм перевода числа, заданного в виде правильной дроби из десятичной системы счисления в систему счисления с основание р.
- Алгоритм перевода произвольных чисел
- Перевод чисел из системы счисления с основанием 2 в систему счисления с основанием 2п и обратно Алгоритм перевода целых чисел
- Алгоритм перевода дробных чисел
- Алгоритм перевода произвольных чисел
- Лекция 2
- Арифметические и логические операции. Приоритет операций.
- Логические основы.
- Основы логики
- Обозначения для логических связок (операций):
- Логические операции
- Логические операции и таблицы истинности
- Порядок выполнения логических операций в сложном логическом выражении
- Построение таблиц истинности для сложных выражений
- Скнф и сднф
- Алгоритмы получения формулы по таблице истинности сднф и скнф
- Правила упрощения логических структур
- Приоритет арифметико-логических операций
- Лекция 3 Основные составные части пк. Файлы и файловые системы эвм. Операционные системы. Поколения эвм
- Структура пк
- Достоинствами пк
- Основные характеристики пк
- Устройство пк
- Основные устройства системного блока
- Типы процессоров
- Внешняя (долговременная) память
- Внешние устройства (устройства для ввода-вывода информации)
- Файлы и файловые системы
- Типы файлов
- Операционная система (ос)
- Лекция 4
- Основные понятия моделирования
- Основные виды моделей и их свойства
- 1.Основные виды моделей
- 2.Основные свойства моделей
- Цели, принципы и технология моделирования
- 1.Цели моделирования
- 2.Основные принципы моделирования
- 3.Технология моделирования
- 4.Основные методы решения задач моделирования
- 5.Контроль правильности модели
- Задачи моделирования
- 1.Постановка задачи моделирования
- 2.Концептуальная формулировка задачи
- 3.Построение математической модели
- 4.Выбор метода решения
- 5.Программная реализация модели на эвм
- 6.Проверка адекватности модели
- 7.Анализ результатов моделирования
- Алгоритмизация и программирование Понятие алгоритма
- Свойства алгоритма
- Формы записи алгоритмов
- Типы алгоритмов
- Методология решения задач с помощью эвм
- Классификация программных средств
- Лекция 5 Данные в языке Turbo-Pascal7.0. Стандартные функции языкаTurbo-Pascal. Структура программы на языке Турбо Паскаль. ОператорыTurbo-Pascal. Программирование линейных алгоритмов.
- Достоинствами языка Паскаль являются:
- Алфавит языка
- Данные – это простейшие объекты программной обработки.
- Характеристики основных типов данных
- Стандартные функции языка Турбо-Паскаль
- Нестандартные функции
- Структура программы на языке Турбо Паскаль
- Оператор присваивания имеет следующую структуру:
- Стандарты ввода – вывода данных
- Составной оператор
- Программирование линейных алгоритмов
- Лекция 6
- Процедуры Procedure
- Условные операторы
- Оператор ‘if-then’
- Оператор ‘if-then-else’
- Тройное ветвление
- Оператор варианта ‘case…of’
- Лекция 7 Циклические структуры. Вложенные циклы. Рекурсивные функции. Операторы прерывания.
- Определенные циклы ‘for…do…’
- Первая форма записи оператора foRс последовательным увеличением счетчика.
- Вторая форма записи оператора foRcуменьшением счетчика:
- Циклы с постусловием ‘repeat…until…’
- Циклы с предусловием ‘while…do…’
- Вложенные циклы
- Рекурсивные функции
- Операторы прерывания Операторы Break и Continue
- Лекция 8 Обработка одномерных и двумерных массивов Понятие и описание массива
- Примеры одномерного, двухмерного, трехмерного массивов
- Способы ввода одномерных массивов:
- Печать массива
- Локальная обработка массива
- Глобальная обработка массива
- Инверсия
- Циклический сдвиг
- Вычисление среднее арифметическое, среднее геометрическое, среднее квадратичное среднее гармоническое
- Сортировка массива
- Сортировка одномерного массива методом пузырька
- Пример. Сортировка обменом по возрастанию массива a из n целых чисел.
- Обработка двумерных массивов
- Литература Основная литература
- Дополнительная литература