Урок 10. Сортировки
425 а1а2а3а4 Пример: Дан целочисленный массив А из 4-х элементов. 1 шаг. а1>a2? Да 3 b If a[1]>a[2] then begin b:=a[2]; a[2]:=a[1]; a[1]:=b; end;
325 а1а2а3а4 Пример: Дан целочисленный массив А из 4-х элементов. 2 шаг. а2>a3? Нет 4 Пропускаем.
325 а1а2а3а4 Пример: Дан целочисленный массив А из 4-х элементов. 3 шаг. а3>a4? Да 4 b If a[1]>a[2] then begin b:=a[4]; a[4]:=a[3]; a[3]:=b; end;
Фрагмент программы пузырьковой сортировки For i:=1 to 3 do if a[1]>a[i+1] then begin b:=a[i+1]; a[i+1]:=a[i]; a[i]:=b; end;
1 шаг. Ищется самый маленький элемент массива с 1-го по последний. (алгоритм нахождения минимального известен вам) 2 шаг. Пусть найдено: а[3] – наименьший. Меняем a[3] c a[1]. 352 а1а2а3а4 4 b b:=a[3]; a[3]:=a[1]; a[1]:=b; посмотреть
3 шаг. Ищется самый маленький элемент массива со 2-го по последний. 4 шаг. Пусть найдено: а[3] – наименьший. Меняем a[3] c a[2]. 243 а1а2а3а4 5 b b:=a[3]; a[3]:=a[2]; a[2]:=b;
5 шаг. Ищется самый маленький элемент массива с 3-го по последний. 6 шаг. Пусть найдено: а[4] – наименьший. Меняем a[3] c a[4]. 245 а1а2а3а4 3 b b:=a[4]; a[4]:=a[3]; a[3]:=b;
Фрагмент программы простой сортировки for i := 1 to n-1 do {выбор места} begin max := I; for j := i+1 to n do {поиск максимального} if а[j] >a [max] then max:=j; b := a[i];{ перестановка элементов} a[i] := a[max]; a[max] := b end;
N_max := 1; For k := 1 to n do if a[k] > a[N_max] then N_max := k;