- •Алгоритмические языки и программирование работа с массивами
- •Брянск 2007
- •1. Цель работы
- •2. Теоретическая часть
- •2.1. Одномерные массивы
- •2.2. Двумерные и многомерные массивы
- •2.3. Строки
- •2.3.1. Подпрограммы для работы со строками
- •2.3.2. Работа со строками длиной более 255 символов
- •2.4. Сортировка данных
- •2.4.1. Сортировка вставкой
- •2.4.2. Сортировка выбором
- •2.4.3. Сортировка обменом («пузырьковая» сортировка)
- •2.4.4. Сравнение прямых методов сортировки
- •2.5. Пример сортировки методом «пузырька»
- •3. Порядок выполнения работы
- •4. Список заданий
- •5. Контрольные вопросы
- •6. Список рекомендуемой литературы
2.4.4. Сравнение прямых методов сортировки
Теоретические и практические исследования алгоритмов прямых методов сортировки показали, что как по числу сравнений, так и по числу присваиваний они имеют квадратичную зависимость от длины массива n. Исключение составляет метод выбора, который имеет число присваиваний порядка n*ln(n). Это свойство алгоритма выбора полезно использовать в задачах сортировки в сложных структурах данных, когда на одно сравнение выполняется большое число присваиваний. В таких задачах метод выбора успешно конкурирует с самыми быстрыми улучшенными методами сортировки.
Если сравнить рассмотренные прямые методы между собой, то в среднем методы вставки и выбора оказываются приблизительно эквивалентными и в несколько раз (в зависимости от длины массива) лучше, чем метод обмена («пузырька»).
2.5. Пример сортировки методом «пузырька»
Const N=100;
Var i, Temp: integer;
A: array[1..N] of integer;
Flag: boolean;
Begin
Randomize;
Writeln('Несортированный массив');
For i:=1 To N Do begin A[i]:=random(50); Write(A[i]:3); end;
Writeln;
Flag:=true;
While Flag Do
Begin
Flag:=false;
For i:=1 To N-1 Do
begin
If A[i]>A[i+1] Then
begin
Temp:=A[i];
A[i]:=A[i+1];
A[i+1]:=Temp;
Flag:=true;
end;{If}
end;{For}
end;{While}
Writeln('Отсортированный массив');
For i:=1 To N Do Write(A[i]:3);
readln;
End.
3. Порядок выполнения работы
Работа выполняется студентом самостоятельно и состоит из этапов:
1) изучение методических указаний по выполнению лабораторной работы и получение индивидуального задания;
2) составление алгоритма и программы на алгоритмическом языке Pascal;
3) отладка программы;
4) защита лабораторной работы.
Общие требования к программе:
-
текст программы представляется в электронном виде и должен включать постановку задачи, сведения об авторе и подробные комментарии;
-
названия переменных должны быть логически обоснованны и давать понятие о том, что в них предполагается хранить или обрабатывать;
-
программа должна запрашивать входные данные и выводить итоговый результат с пояснениями.
4. Список заданий
Для выполнения данной лабораторной работы необходимо написать программу на языке Pascal, которая сортирует данные указанным методом.
Программа состоит из следующих этапов:
-
Объявление необходимой области данных (константы, переменные, массивы).
-
Заполнение массивов неупорядоченными данными.
-
Вывод массива с данными.
-
Формирование циклов, в которых выполняется сортировка данных.
-
Вывод массива с данными.
№ варианта |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
Задание |
1A |
1B |
1C |
1D |
1E |
2A |
2B |
2C |
2D |
2E |
3A |
№ варианта |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
Задание |
3B |
3C |
3D |
3E |
1A |
1B |
1C |
1D |
1E |
2A |
2B |
№ варианта |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
|
|
|
Задание |
2C |
2D |
2E |
3A |
3B |
3C |
3D |
3E |
|
|
|
Примечание.
1. Методы сортировки: 1 – вставкой; 2 – выбором; 3 – обменом. |
2. Содержимое массива: A – прописные латинские; B – заглавные латинские; С – прописные русские; D – заглавные русские; E – вещественные числа. |
3. Направление сортировки: - по возврастанию; - по убыванию.
|