Сортировка массива
Одной из основных операций, производимых над массивами, являются операции сортировки или упорядочивания элементов массива по какому-либо признаку (чаще всего по возрастанию). Одной из основных операций, производимых над массивами, являются операции сортировки или упорядочивания элементов массива по какому-либо признаку (чаще всего по возрастанию). Сортировок придумано множество. Сортировок придумано множество.
Методы сортировки Метод поиска минимального (максимального) или сортировка выбором Метод поиска минимального (максимального) или сортировка выбором Отыскивается минимальный (максимальный) элемент и переносится в начало (конец) массива. Затем этот метод применяется ко всем элементам, кроме первого (последнего) (он уже находится на своем окончательном месте) и т. д. Метод пузырька или сортировка обменом Метод пузырька или сортировка обменом Последовательно сравниваются пары соседних элементов а к и а к+1 (к = 1, 2, 3, …n – 1) и, если а к > а к+1, то они переставляются; тем самым наибольший элемент окажется на своем месте в конце массива. Затем этот метод применяется ко всем элементам, кроме последнего и т.д. Метод вставок Метод вставок Пусть первые к элементов массива уже упорядочены по возрастанию. Берется (к+1)-й элемент и размещается среди первых к элементов так, чтобы упорядоченными оказались уже (к+1) первых элементов. Этот метод применяется при к от до n- 1.
Задача Элементы заданного числового массива a1, a2,..., aN упорядочить по возрастанию Элементы заданного числового массива a1, a2,..., aN упорядочить по возрастанию
Program Sort; Program Sort; const n = 15; a = – 4; b = 40; var M: array [1..n] of integer; i, j, Tmp: integer; i, j, Tmp: integer; Begin {заполнение массива } for i:=1 to n do M[i]:= random(b – a) + a; for i:=1 to n do M[i]:= random(b – a) + a; {вывод на экран} for i:=1 to n do write(M[i]:6); for i:=1 to n do write(M[i]:6);{ } WriteLn(Исходный массив :'); For i:=1 to N do Write( A[i] : 3); WriteLn; For i:=1 to N do Write( A[i] : 3); WriteLn; {упорядочения по возрастанию} {упорядочения по возрастанию} For i := 1 to N-1 do For j := 1 to N-i do For j := 1 to N-i do If A[j] > A[j+1] then If A[j] > A[j+1] then begin begin Tmp:=A[j]; A[j]:=A[j+1]; A[j+1]:=Tmp ; Tmp:=A[j]; A[j]:=A[j+1]; A[j+1]:=Tmp ; end; { } end; { } WriteLn('Упорядоченный массив :'); WriteLn('Упорядоченный массив :'); For i:=1 to N do Write( A[i] :3); For i:=1 to N do Write( A[i] :3); { } ReadLn; END.