Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Алгоритм сортировки





1. Ввести n чисел.

2. Для номера_просмотра от 1 до n-1 выполнить

2.1. Для номера_числа (i) от 1 до n-1 выполнить

Если число[i] > число[i+1], то поменять их местами.

3. Вывести отсортированную последовательность.

4. Закончить.

 

Программа для этого алгоритма будет иметь вид

 

Program Sort;

Const

Nmax = 100;

Var

X: Array [1..Nmax] Of Real;

A: Real;

n, k, i: Integer;

 

Begin

Writeln('Введите количество чисел');

Readln(n);

Writeln('Введите массив чисел');

For i: = 1 To n Do

Read (X[i]);

{ Сортировка }

For k: = 1 To n-1 Do

For i: = 1 To n-1 Do

If X[i] > X[i+1] Then

Begin

A: =X[i];

X[i]: =X[i+1];

X[i+1]: =A

End;

Writeln('Отсортированный массив чисел: ');

For i: =1 To n Do

Write (X[i]);

End.

 

Глубину просмотра можно уменьшать, основываясь на том, что большие числа " опускаются" вниз (в конец последовательности) и затем не переставляются:

For k: = 1 To n-1 Do

For i: = 1 To n-k Do

If X[i] > X[i+1] Then

........

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

Приведем алгоритм для этого метода.

В этом алгоритме используется переменная " Перестановка_есть", которой сначала присваивается значение " истина", а как только в одном из просмотров не будет перестановок – ей присвоится значение " ложь". Это позволит прервать выполнение цикла " Пока".

 

1. Ввести массив.

2. Перестановка_есть = истина.

3. Номер_просмотра = 1.

4. Пока перестановка_есть = истина выполнить

сортировку массива.

5. Вывести результат.

6. Закончить.

 

Уточним отдельные пункты этого алгоритма.

1. Ввести массив.

2. Перестановка_есть = истина

3. Номер_просмотра (к)=1

4. Пока перестановка_есть = истина выполнить

4.1. Количество_перестановок = 0

4.2. Для i от 1 до n-k выполнить

Если x[i] > x[i+1], то

4.2.1. поменять x[i] и x[i+1]

4.2.2. количество_перестановок = количество_перестановок + 1

4.3. Если количество_перестановок = 0, то

перестановка_есть =ложь.

4.4. к=к+1

5. Для i от 1 до n выполнить

Вывести x[i].

6. Закончить.

 

Программа для этого алгоритма будет иметь вид

 

Program SortUsk;

Const

Nmax = 100;

Var

X: Array [1..Nmax] Of Real;

A: Real;

P: Boolean;

L, K, I, N: Integer;

Begin

Writeln('Введите количество чисел');

Readln(n);

Writeln('Введите массив чисел');

For i: = 1 To n Do

Read(X[i]);

P: = True; {Перестановка есть}

K: = 1; {Номер просмотра}

While P Do

Begin

L: =0; {Кол. перестановок}

For i: = 1 To n-k Do

If X[i] > X[i+1] Then

Begin

A: = X[i];

X[i]: =X[i+1];

X[i+1]: =A;

L: =L+1

End;

If L=0 Then

P: =False;

k: =k+1;

End;

Writeln('Отсортированный массив чисел');

For i: = 1 To n Do

Write(X[i]);

End.

 







Дата добавления: 2014-12-06; просмотров: 600. Нарушение авторских прав; Мы поможем в написании вашей работы!




Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...


ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...


Теория усилителей. Схема Основная масса современных аналоговых и аналого-цифровых электронных устройств выполняется на специализированных микросхемах...


Логические цифровые микросхемы Более сложные элементы цифровой схемотехники (триггеры, мультиплексоры, декодеры и т.д.) не имеют...

Решение Постоянные издержки (FC) не зависят от изменения объёма производства, существуют постоянно...

ТРАНСПОРТНАЯ ИММОБИЛИЗАЦИЯ   Под транспортной иммобилизацией понимают мероприятия, направленные на обеспечение покоя в поврежденном участке тела и близлежащих к нему суставах на период перевозки пострадавшего в лечебное учреждение...

Кишечный шов (Ламбера, Альберта, Шмидена, Матешука) Кишечный шов– это способ соединения кишечной стенки. В основе кишечного шва лежит принцип футлярного строения кишечной стенки...

ИГРЫ НА ТАКТИЛЬНОЕ ВЗАИМОДЕЙСТВИЕ Методические рекомендации по проведению игр на тактильное взаимодействие...

Реформы П.А.Столыпина Сегодня уже никто не сомневается в том, что экономическая политика П...

Виды нарушений опорно-двигательного аппарата у детей В общеупотребительном значении нарушение опорно-двигательного аппарата (ОДА) идентифицируется с нарушениями двигательных функций и определенными органическими поражениями (дефектами)...

Studopedia.info - Студопедия - 2014-2026 год . (0.01 сек.) русская версия | украинская версия