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

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

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





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




Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...


Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...


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


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

Растягивание костей и хрящей. Данные способы применимы в случае закрытых зон роста. Врачи-хирурги выяснили...

ФАКТОРЫ, ВЛИЯЮЩИЕ НА ИЗНОС ДЕТАЛЕЙ, И МЕТОДЫ СНИЖЕНИИ СКОРОСТИ ИЗНАШИВАНИЯ Кроме названных причин разрушений и износов, знание которых можно использовать в системе технического обслуживания и ремонта машин для повышения их долговечности, немаловажное значение имеют знания о причинах разрушения деталей в результате старения...

Различие эмпиризма и рационализма Родоначальником эмпиризма стал английский философ Ф. Бэкон. Основной тезис эмпиризма гласит: в разуме нет ничего такого...

Демографияда "Демографиялық жарылыс" дегеніміз не? Демография (грекше демос — халық) — халықтың құрылымын...

Субъективные признаки контрабанды огнестрельного оружия или его основных частей   Переходя к рассмотрению субъективной стороны контрабанды, остановимся на теоретическом понятии субъективной стороны состава преступления...

ЛЕЧЕБНО-ПРОФИЛАКТИЧЕСКОЙ ПОМОЩИ НАСЕЛЕНИЮ В УСЛОВИЯХ ОМС 001. Основными путями развития поликлинической помощи взрослому населению в новых экономических условиях являются все...

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