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

2.3 Быстрая сортировка

На рисунке 2.7 показан вывод программы.

Рисунок 2.7 - Значения выводимой программы

В таблице 2.5 приведены значения размера массивов, количество сравнений для каждой длины (compares) и количество перестановок (swaps).

Таблица 2.5 – Таблица значений количества сравнений и перестановок

Размер массива, n

Количество сравнений

Количество перестановок

1

2

1

2

3

1

3

6

2

4

7

4

5

12

6

10

24

13

15

52

20

20

69

26

25

96

38

30

121

48

50

241

85

75

426

134

100

617

194

250

1861

553

500

4047

1248

На рисунке 2.8 показана зависимость O(n)=n, O(n)=n*log2(n), O(n)=n2, O(n)=n3, количество сравнений и количество перестановок.

Рисунок 2.8 – Зависимость для «Быстрой сортировки»

В таблице 2.6 показаны длина массивов и время выполнения перестановок и сравнений.

Таблица 2.6 – Таблица значений времени

Размер массива, n

Время

1

0

2

0

3

0,000001

4

0

5

0,000001

10

0

15

0,000001

20

0,000001

25

0,000002

30

0,000002

Продолжение таблицы 2.6

Размер массива, n

Время

50

0,000004

75

0,000006

100

0,000008

250

0,000016

500

0,000031

На рисунке 2.9 показан график зависимости времени от длины массива.

Рисунок 2.9 – График зависимости времени от длины массива

Из данных графиков можно сделать вывод, что линии количества перестановок и сравнений лежит между линией О(n) = n*log2(n). А лучшее время для быстрой сортировки = n*log2(n), а худшее = О (n2). Из этого следует, что наша программа попадает в лучшее время.

2.4 Пирамидальная сортировка

На рисунке 2.10 показан вывод программы.

Рисунок 2.10 - Значения выводимой программы

В таблице 2.7 приведены значения размера массивов, количество сравнений для каждой длины (compares) и количество перестановок (swaps).

Таблица 2.7 – Таблица значений количества сравнений и перестановок

Размер массива, n

Количество сравнений

Количество перестановок

1

0

0

2

3

1

3

6

3

Продолжение таблицы 2.7

Размер массива, n

Количество сравнений

Количество перестановок

4

10

7

5

12

6

10

55

35

15

98

56

20

150

88

25

191

110

30

262

150

50

510

294

75

842

471

100

1230

682

250

3679

1996

500

8417

4530

На рисунке 2.11 показана зависимость O(n)=n, O(n)=n*log2(n), O(n)=n2, O(n)=n3, количество сравнений и количество перестановок.

Рисунок 2.11 – Зависимость для «Пирамидальной сортировки»

В таблице 2.8 показаны длина массивов и время выполнения перестановок и сравнений.

Таблица 2.8 – Таблица значений времени

Размер массива, n

Время

1

0,000001

2

0

3

0

4

0

5

0

10

0,000001

15

0,000001

20

0,000002

25

0,000002

30

0,000004

50

0,000006

75

0,000006

100

0,000007

250

0,000022

500

0,000054

На рисунке 2.12 показан график зависимости времени от длины массива.

Рисунок 2.12 – График зависимости времени от длины массива

Из данных графиков можно сделать вывод, что линии количества перестановок и сравнений лежит между линией О(n) = n*log2(n). А лучшее время для пирамидальной сортировки = n*log2(n), а худшее = О (n2). Из этого следует, что наша программа попадает в лучшее время.

Соседние файлы в предмете Технологии и методы программирования