Добавил:
I want to die Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2 сем / 0207_Лиоско_ЛР3.pdf
Скачиваний:
7
Добавлен:
04.04.2022
Размер:
404.47 Кб
Скачать

2-3

10

96,348196

10,0009

1-3

100

1217,297064

100,0991

Вывод.

Были реализованы программы сортировки выбором для n-вектора исходных данных в программе Matlab. Время сортировки и число перестановок увеличивалось с увеличением размерности вектора n.

6

3.2 Алгоритм «Сортировка пузырьком» (Bubble Sort)

Цель работы.

Изучение и программирование стандартного алгоритма сортировки пузырьком.

Блок-схема программы для сортировки выбором.

Текст программы 1 (cортировка пузырьком).

clc;

clear all; N=7;

M=0;

s=[10 8 3 28 11 4 1]; tic;

for i=N:(-1):1% N принимает значения от максимального номера элемента (7) до 1

for j=1:i-1 % пробег по всему массиву кроме последнего элемента

if (s(j+1)<s(j))% если j+1 элемент массива меньше j

P=s(j);

s(j)=s(j+1);

s(j+1)=P;

M=M+1;% количество перестановок

end

end

end toc;

disp(s);

disp(M);

Листинг 1.

Elapsed time is 0.008697 seconds.

1

3

4

8

10

11

28

14

 

 

 

 

 

 

Текст программы 2 (s(1000)).

clc;

clear all; N=1000; M=0;

s=fix(50*rand ([1 1000])); tic;

for i=N:(-1):1% N принимает значения от максимального номера элемента (7) до 1

for j=1:i-1 % пробег по всему массиву кроме последнего элемента

if (s(j+1)<s(j))% если j+1 элемент массива меньше j

P=s(j);

s(j)=s(j+1);

s(j+1)=P;

M=M+1;% количество перестановок

end

end

end toc;

disp(M);

Листинг 2.

Elapsed time is 0.020315 seconds. 241678

Текст программы 3 (s(10000)).

clc;

clear all;

8

N=10000;

M=0;

s=fix(50*rand ([1 10000])); tic;

for i=N:(-1):1% N принимает значения от максимального номера элемента (7) до 1

for j=1:i-1 % пробег по всему массиву кроме последнего элемента

if (s(j+1)<s(j))% если j+1 элемент массива меньше j

P=s(j);

s(j)=s(j+1);

s(j+1)=P;

M=M+1;% количество перестановок

end

end

end toc;

disp(M);

Листинг 3.

Elapsed time is 0.349434 seconds. 24756111

Текст программы 4 (s(100000)).

clc;

clear all; N=100000; M=0;

s=fix(50*rand ([1 100000])); tic;

for i=N:(-1):1% N принимает значения от максимального номера элемента (7) до 1

for j=1:i-1 % пробег по всему массиву кроме последнего элемента

if (s(j+1)<s(j))% если j+1 элемент массива меньше j

P=s(j);

s(j)=s(j+1);

s(j+1)=P;

M=M+1;% количество перестановок

end

end

end

9

toc;

disp(M);

Листинг 4.

Elapsed time is 36.395857 seconds. 2.4586e+09

Таблицу времени выполнения и числа перестановок от размерности вектора, таблицу с коэффициентами KN, Kt, Km

i

N

t, сек

m

1

1000

0,020315

241678

2

10000

0,349434

24756111

3

100000

36,395857

2,46E+09

i-j

KN

Kt

Km

1-2

10

17,200788

102,4343

2-3

10

104,156599

99,31285

1-3

100

1791,575535

10173,04

Вывод.

Были реализованы программы сортировки выбором для n-вектора исходных данных в программе Matlab. Время сортировки и число перестановок увеличивалось с увеличением размерности вектора n.

10

Соседние файлы в папке 2 сем