Сортировка массивов
Метод «пузырька»
10 класс
Учитель Гоголев Д.Г.
Зачем нужна сортировка?
С отсортированными данными работать легче, чем с произвольно расположенными:
12 1 45 102 45 56 23 84 65 98 15 14 65 42 61 7 18 96 2 83 91
1 2 7 12 14 15 18 23 42 45 45 56 61 65 65 83 84 91 96 98 102
- когда элементы отсортированы, их проще найти;
- легче определить, имеются ли пропущенные элементы;
- проще удостовериться, что все элементы были проверены;
- легче найти общие элементы двух массивов.
Метод «пузырька»
Рассмотрим исходный массив: { 9, 3, 6, 0, 2 }
Выбираем первый элемент: 9 .
Сравниваем его с остальными элементами массива, если находим меньший, то меняем их метами:
{ 9 , 3 , 6, 0, 2 } { 3 , 9, 6, 0 , 2} { 0 , 9, 6, 3, 2}
Метод «пузырька»
Выбираем второй элемент: 9 .
Сравниваем его с остальными элементами массива, если находим меньший, то меняем их метами:
{0, 9 , 6 , 3, 2} {0, 6 , 9, 3 , 2} {0, 3 , 9, 6, 2 }
{0, 2 , 9, 6, 3}
Метод «пузырька»
Выбираем третий элемент: 9 .
Сравниваем его с остальными элементами массива, если находим меньший, то меняем их метами:
{0, 2, 9 , 6 , 3} {0, 2, 6 , 9, 3 } {0, 2, 3 , 9, 6}
Выбираем четвертый элемент: 9 .
{0, 2, 3, 9 , 6 } {0, 2, 3, 6, 9}
a[j] then begin c:=a[i]; a[i]:=a[j]; a[j]:=c; end; " width="640"
Реализация сортировки «пузырьком» на языке Pascal (одномерный массив)
For i:=1 to n-1 do
for j:=i+1 to n do
if a[i]a[j] then begin
c:=a[i];
a[i]:=a[j];
a[j]:=c;
end;
Сортировка двумерных массивов
1
1
0
0
2
4
4
1
0
5
6
5
1
0
2
3
2
7
3
3
5
8
5
7
7
5
4
7
6
1
3
1
1
5
5
3
4
0
2
8
0
7
0
0
1
2
2
5
7
3
?
0
3
1
5
3
0
5
0
4
1
2
1
7
6
0
5
1
2
7
4
2
8
3
5
7
a[i,k] then begin c:=a[i,j]; a[i,j]:=a[i,k]; a[i,k]:=c; end; " width="640"
Реализация сортировки «пузырьком» на языке Pascal (двумерный массив)
for i:=1 to n do
for j:=1 to m-1 do
for k:=j+1 to m do begin
if a[i,j]a[i,k] then begin
c:=a[i,j];
a[i,j]:=a[i,k];
a[i,k]:=c;
end;
Сортировка двумерных массивов
1
1
0
0
4
2
1
4
5
0
2
0
6
5
1
3
2
7
3
3
8
5
5
7
7
5
4
7
3
1
6
1
1
5
5
8
2
4
0
3
7
0
0
0
2
2
1
5
7
3
?
≠
0
3
1
5
3
0
5
1
0
4
0
7
1
2
6
2
1
5
7
4
2
8
3
5
7