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

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

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





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. Нарушение авторских прав; Мы поможем в написании вашей работы!




Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...


Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...


Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...


Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Мотивационная сфера личности, ее структура. Потребности и мотивы. Потребности и мотивы, их роль в организации деятельности...

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

Внешняя политика России 1894- 1917 гг. Внешнюю политику Николая II и первый период его царствования определяли, по меньшей мере три важных фактора...

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

Тема 2: Анатомо-топографическое строение полостей зубов верхней и нижней челюстей. Полость зуба — это сложная система разветвлений, имеющая разнообразную конфигурацию...

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

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