Считаем, что вначале данные неупорядочены. Полагаем, что первый элемент находится на своем месте, поэтому граница между отсортированными и неотсортированными элементами находится после первого элемента. На каждом шаге, начиная от границы, ищем максимальный элемент и определяем его место в отсортированной части последовательности, после чего сдвигаем необходимую часть отсортированных элементов вправо и производим вставку элемента на освободившееся место. Алгоритм выполняем до тех пор, пока не граница отсортированных данных не выйдет за границу массива.
PascalABC.NET 3.4.2, сборка 1881 от 19.11.2018Внимание! Если программа не работает, обновите версию!
procedure SortByInsert(a: array of real);
// сортировка простыми вставками
begin
for var Граница := 1 to a.Length - 1 do
if a[Граница - 1] < a[Граница] then
begin
// сдвиг вправо
var (Элемент, Позиция) := (a[Граница], Граница - 1);
while (Позиция >= 0) and (a[Позиция] < Элемент) do
(a[Позиция + 1], Позиция) := (a[Позиция], Позиция - 1);
Его можно рассматривать как систему, состоящую из подсистем «аппаратное обеспечение», «программное обеспечение», «информационные ресурсы»Подсистема аппаратного обеспечения выступает в качестве надсистемы для устройств ввода, обработки, хранения и вывода информации.
Операционная система — подсистема программного обеспечения и надсистема, в состав которой входят системные и служебные программы.
Система информационных ресурсов включает в себя системы текстовых и графических файлов, звуковых файлов, файлов с видеоинформацией и т. д.
Считаем, что вначале данные неупорядочены. Полагаем, что первый элемент находится на своем месте, поэтому граница между отсортированными и неотсортированными элементами находится после первого элемента. На каждом шаге, начиная от границы, ищем максимальный элемент и определяем его место в отсортированной части последовательности, после чего сдвигаем необходимую часть отсортированных элементов вправо и производим вставку элемента на освободившееся место. Алгоритм выполняем до тех пор, пока не граница отсортированных данных не выйдет за границу массива.
PascalABC.NET 3.4.2, сборка 1881 от 19.11.2018Внимание! Если программа не работает, обновите версию!procedure SortByInsert(a: array of real);
// сортировка простыми вставками
begin
for var Граница := 1 to a.Length - 1 do
if a[Граница - 1] < a[Граница] then
begin
// сдвиг вправо
var (Элемент, Позиция) := (a[Граница], Граница - 1);
while (Позиция >= 0) and (a[Позиция] < Элемент) do
(a[Позиция + 1], Позиция) := (a[Позиция], Позиция - 1);
// вставка на нужное место
a[Позиция + 1] := Элемент
end
end;
begin
var a := ReadArrReal(8);
SortByInsert(a); a.Println
end.
Пример2.9 -25 8.1 31.9 -30.9 20.9 47.6 6.647.6 31.9 20.9 8.1 6.6 2.9 -25 -30.9Его можно рассматривать как систему, состоящую из подсистем «аппаратное обеспечение», «программное обеспечение», «информационные ресурсы»Подсистема аппаратного обеспечения выступает в качестве надсистемы для устройств ввода, обработки, хранения и вывода информации.
Операционная система — подсистема программного обеспечения и надсистема, в состав которой входят системные и служебные программы.
Система информационных ресурсов включает в себя системы текстовых и графических файлов, звуковых файлов, файлов с видеоинформацией и т. д.