Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовой.doc
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
275.46 Кб
Скачать

Пример выполнения курсового проекта

1 Постановка задачи

Осуществить исследование прямых методов сортировки:

- метод прямого выбора;

- метод прямой вставки;

- метод прямого обмена.

Исследование осуществить, используя массивы упорядоченных и неупорядоченных чисел по 10,100,1000 и 10000 элементов.

2 Краткая теория

При обработке данных важно знать и информационное поле данных, и размещение их в машине.

Различают внутреннюю и внешнюю сортировки:

- внутренняя сортировка - сортировка в оперативной памяти;

- внешняя сортировка - сортировка во внешней памяти.

Сортировка - это расположение данных в памяти в регулярном виде по их ключам. Регулярность рассматривают как возрастание (убывание) значения ключа от начала к концу в массиве.

Если сортируемые записи занимают большой объем памяти, то их перемещение требует больших затрат. Для того, чтобы их уменьшить, сортировку производят в таблице адресов ключей, делают перестановку указателей, т.е. сам массив не перемещается. Это метод сортировки таблицы адресов.

При сортировке могут встретиться одинаковые ключи. В этом случае при сортировке желательно расположить после сортировки одинаковые ключи в том же порядке, что и в исходном файле. Это устойчивая сортировка.

Эффективность сортировки можно рассматривать с нескольких критериев:

- время, затрачиваемое на сортировку;

- объем оперативной памяти, требуемой для сортировки;

- время, затраченное программистом на написание программы.

Выделяем первый критерий. Можно подсчитать количество сравнений при выполнении сортировки или количество перемещений.

Пусть Н = 0,01n2 + 10n - число сравнений. Если n < 1000, то второе слагаемое больше, если n > 1000, то больше первое слагаемое.

Т. е. при малых n порядок сравнения будет равен n2, при больших n порядок сравнения - n.

Порядок сравнения при сортировке лежит в пределах

от 0 (n log n) до 0 (n2); 0 (n) - идеальный случай.

Различают следующие методы сортировки:

- базовые методы;

- улучшенные методы.

Базовые методы:

 1) метод прямого включения;

 2) метод прямого выбора;

 3) метод прямого обмена.

Количество перемещений в этих трех методах примерно одинаково.

2.1 Сортировка методом прямого включения

Неформальный алгоритм

for i = 2 to n

x = a(i)

находим место среди а(1)…а(i) для включения х

next i

Программа на Паскале:

for i := 2 to n do

begin

x := a[i];

a[0] = x;

for j := i - 1 downto 1 do

if x < a[j] then a[j + 1] := a[j]

else a[j + 1] := x;

end; 

 

Эффективность алгоритма:

Количество сравнений в худшем случае будет равно (n - 1)(n - 1).

2.2 Сортировка методом прямого выбора

 Рассматриваем весь ряд массива и выбираем элемент, меньший или больший элемента а(i), определяем его место в массиве - k, и затем меняем местами элемент а(i) и элемент а(k).

Программа на Паскале:

for i := 1 to n - 1 do

begin

x := a[i];

k := i;

for j := i + 1 to n do

if x > a[j] then

begin

k := j;

x := a[k];

end;

a[k] := a[i];

a[i] := x;

end;

Эффективность алгоритма:

Число сравнений М = .

Число перемещений Cmin = 3(n - 1), Cmax = 3(n - 1) (порядок n2).

В худшем случае сортировка прямым выбором дает порядок n2, как и для числа сравнений, так и для числа перемещений.