Создать алгоритм способом пошаговой детализации и программку решения задачки, в которой

Разработать метод способом пошаговой детализации и программу решения задачки, в которой отсортировать одномерный массив a[1..8], состоящий из частей вещественного типа в порядке убывания способом вставки. Исходные данные массива вводятся с клавиатуры.

Задать свой вопрос
1 ответ

Считаем, что сначала данные неупорядочены. Полагаем, что 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] lt; a[Граница] then

   begin

     // сдвиг вправо

     var (Элемент, Позиция) := (a[Граница], Граница - 1);

     while (Позиция gt;= 0) and (a[Позиция] lt; Элемент) 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.6

47.6 31.9 20.9 8.1 6.6 2.9 -25 -30.9

, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт