Метод пузырька
Алгоритм
167.28K
Categories: programmingprogramming informaticsinformatics

Метод пузырька. Сортировка массива

1. Метод пузырька

Сортировка массива

2. Алгоритм

1. for i := 1 to m - 1 do
2. for j := 1 to m - i do
3.
if A[ j ] > A[ j + 1] then begin
4.
k := A[ j ];
5.
A[ j ] := A[ j + 1];
6.
A[ j + 1] := k;
7.
end;

3.

1 9 2 4 8 3 5 4 6 10
k
i=1
j :=1 to 9
j :=
1
if A[1] > A[ 2] then
begin
k := A[ 1 ];
A[ 1 ] := A[ 2 ];
A[ 2 ] := k;

4.

1 9 2 4 8 3 5 4 6 10
k
i=1
j :=1 to 9
j :=
2
if A[ 2 ] > A[ 3 ] then
begin
k := A[ 2 ];
A[ 2 ] := A[ 3 ];
A[ 3 ] := k;

5.

1 2 9 4 8 3 5 4 6 10
k
i=1
j :=1 to 9
j :=
3
if A[ 3 ] > A[ 4 ] then
begin
k := A[ 3 ];
A[ 3 ] := A[ 4 ];
A[ 4 ] := k;

6.

1 2 4 9 8 3 5 4 6 10
k
i=1
j :=1 to 9
j :=
4
if A[ 4 ] > A[ 5 ] then
begin
k := A[ 4 ];
A[ 4 ] := A[ 5 ];
A[ 5 ] := k;

7.

1 2 4 8 9 3 5 4 6 10
k
i=1
j :=1 to 9
j :=
5
if A[ 5 ] > A[ 6 ] then
begin
k := A[ 5 ];
A[ 5 ] := A[ 6 ];
A[ 6 ] := k;

8.

1 2 4 8 3 9 5 4 6 10
k
i=1
j :=1 to 9
j :=
6
if A[ 6 ] > A[ 7 ] then
begin
k := A[ 6 ];
A[ 6 ] := A[ 7 ];
A[ 7 ] := k;

9.

1 2 4 8 3 5 9 4 6 10
k
i=1
j :=1 to 9
j :=
7
if A[ 7 ] > A[ 8 ] then
begin
k := A[ 7 ];
A[ 7 ] := A[ 8 ];
A[ 8 ] := k;

10.

1 2 4 8 3 5 4 9 6 10
k
i=1
j :=1 to 9
j :=
8
if A[ 8 ] > A[ 9 ] then
begin
k := A[ 8 ];
A[ 8 ] := A[ 9 ];
A[ 9 ] := k;

11.

1 2 4 8 3 5 4 6 9 10
k
i=1
j :=1 to 9
j :=
9
if A[ 9 ] > A[ 10 ] then
begin
k := A[ 9 ];
A[ 9 ] := A[ 10 ];
A[ 10 ] := k;

12.

1 2 4 8 3 5 4 6 9 10
k
i=2
j :=1 to 8
j :=
1
if A[ 1 ] > A[ 2 ] then
begin
k := A[ 1 ];
A[ 1 ] := A[ 2 ];
A[ 2 ] := k;

13.

1 2 4 8 3 5 4 6 9 10
k
i=2
j :=1 to 8
j :=
2
if A[ 2 ] > A[ 3 ] then
begin
k := A[ 2 ];
A[ 2 ] := A[ 3 ];
A[ 3 ] := k;

14.

1 2 4 8 3 5 4 6 9 10
k
i=2
j :=1 to 8
j :=
3
if A[ 3 ] > A[ 4 ] then
begin
k := A[ 3 ];
A[ 3 ] := A[ 4 ];
A[ 4 ] := k;

15.

1 2 4 8 3 5 4 6 9 10
k
i=2
j :=1 to 8
j :=
4
if A[ 4 ] > A[ 5 ] then
begin
k := A[ 4 ];
A[ 4 ] := A[ 5 ];
A[ 5 ] := k;

16.

1 2 4 3 8 5 4 6 9 10
k
i=2
j :=1 to 8
j :=
5
if A[ 5 ] > A[ 6 ] then
begin
k := A[ 5 ];
A[ 5 ] := A[ 6 ];
A[ 6 ] := k;

17.

1 2 4 3 5 8 4 6 9 10
k
i=2
j :=1 to 8
j :=
6
if A[ 6 ] > A[ 7 ] then
begin
k := A[ 6 ];
A[ 6 ] := A[ 7 ];
A[ 7 ] := k;

18.

1 2 4 3 5 4 8 6 9 10
k
i=2
j :=1 to 8
j :=
7
if A[ 7 ] > A[ 8 ] then
begin
k := A[ 7 ];
A[ 7 ] := A[ 8 ];
A[ 8 ] := k;

19.

1 2 4 3 5 4 6 8 9 10
k
i=2
j :=1 to 8
j :=
8
if A[ 8 ] > A[ 9 ] then
begin
k := A[ 8 ];
A[ 8 ] := A[ 9 ];
A[ 9 ] := k;

20.

1 2 4 3 5 4 6 8 9 10
k
i=3
j :=1 to 7
j :=
1
if A[ 1 ] > A[ 2 ] then
begin
k := A[ 1 ];
A[ 1 ] := A[ 2 ];
A[ 2 ] := k;

21.

1 2 4 3 5 4 6 8 9 10
k
i=3
j :=1 to 7
j :=
2
if A[ 2 ] > A[ 3 ] then
begin
k := A[ 2 ];
A[ 2 ] := A[ 3 ];
A[ 3 ] := k;

22.

1 2 4 3 5 4 6 8 9 10
k
i=3
j :=1 to 7
j :=
3
if A[ 3 ] > A[ 4 ] then
begin
k := A[ 3 ];
A[ 3 ] := A[ 4 ];
A[ 4 ] := k;

23.

1 2 3 4 5 4 6 8 9 10
k
i=3
j :=1 to 7
j :=
4
if A[ 4 ] > A[ 5 ] then
begin
k := A[ 4 ];
A[ 4 ] := A[ 5 ];
A[ 5 ] := k;

24.

1 2 3 4 5 4 6 8 9 10
k
i=3
j :=1 to 7
j :=
5
if A[ 5 ] > A[ 6 ] then
begin
k := A[ 5 ];
A[ 5 ] := A[ 6 ];
A[ 6 ] := k;

25.

1 2 3 4 4 5 6 8 9 10
k
i=3
j :=1 to 7
j :=
6
if A[ 6 ] > A[ 7 ] then
begin
k := A[ 6 ];
A[ 6 ] := A[ 7 ];
A[ 7 ] := k;

26.

1 2 3 4 4 5 6 8 9 10
k
i=3
j :=1 to 7
j :=
7
if A[ 7 ] > A[ 8 ] then
begin
k := A[ 7 ];
A[ 7 ] := A[ 8 ];
A[ 8 ] := k;

27.

1 2 3 4 4 5 6 8 9 10
k
i=4
j :=1 to 6
j :=
1
if A[ 1 ] > A[ 2 ] then
begin
k := A[ 1 ];
A[ 1 ] := A[ 2 ];
A[ 2 ] := k;

28.

1 2 3 4 4 5 6 8 9 10
k
i=4
j :=1 to 6
j :=
2
if A[ 2 ] > A[ 3 ] then
begin
k := A[ 2 ];
A[ 2 ] := A[ 3 ];
A[ 3 ] := k;

29.

1 2 3 4 4 5 6 8 9 10
k
i=4
j :=1 to 6
j :=
3
if A[ 3 ] > A[ 4 ] then
begin
k := A[ 3 ];
A[ 3 ] := A[ 4 ];
A[ 4 ] := k;

30.

1 2 3 4 4 5 6 8 9 10
k
i=4
j :=1 to 6
j :=
4
if A[ 4 ] > A[ 5 ] then
begin
k := A[ 4 ];
A[ 4 ] := A[ 5 ];
A[ 5 ] := k;

31.

1 2 3 4 4 5 6 8 9 10
k
i=4
j :=1 to 6
j :=
5
if A[ 5 ] > A[ 6 ] then
begin
k := A[ 5 ];
A[ 5 ] := A[ 6 ];
A[ 6 ] := k;

32.

1 2 3 4 4 5 6 8 9 10
k
i=4
j :=1 to 6
j :=
6
if A[ 6 ] > A[ 7 ] then
begin
k := A[ 6 ];
A[ 6 ] := A[ 7 ];
A[ 7 ] := k;

33.

1 2 3 4 4 5 6 8 9 10
k
i=5
j :=1 to 5
j :=
1
if A[ 1 ] > A[ 2 ] then
begin
k := A[ 1 ];
A[ 1 ] := A[ 2 ];
A[ 2 ] := k;

34.

1 2 3 4 4 5 6 8 9 10
k
i=5
j :=1 to 5
j :=
2
if A[ 2 ] > A[ 3 ] then
begin
k := A[ 2 ];
A[ 2 ] := A[ 3 ];
A[ 3 ] := k;

35.

1 2 3 4 4 5 6 8 9 10
Программа будет выполнятся до конца цикла
для j и для i.
i=5
i=6
i=7
i=8
i=9
i=10
j :=1 to 5
j :=1 to 4
j :=1 to 3
j :=1 to 2
j :=1 to 1
English     Русский Rules