Сортировка. метод выбора. уровень a. массив содержит четное количество элементов. напишите программу, которая сортирует первую половину массива по возрастанию, а вторую – по убыванию. каждый элемент должен остаться в «своей» половине. пример: массив: 5 3 4 2 1 6 3 2 после сортировки: 2 3 4 5 6 3 2 1 и (подробно,т.к я не понимаю) , нужно. 20
137
284
Ответы на вопрос:
//обьявляем дополнительные переменные и главный массив, а также два дополнительных - они будут "половинками". var a, b, c: array [1..100] of longint; i, min, n, j, t: longint; begin //читаем количество элементов в нашем массиве. readln(n); //читаем массив. for i : = 1 to n do read(a[i]); //заполняем первую "половинку". for i : = 1 to n div 2 do b[i] : = a[i]; //заполняем вторую "половинку". но раз это уже вторая "половинка" главного массива, то и //цикл теперь должен начинаться со второй части массива, а заканчиваться уже в его конце. for i : = n div 2 + 1 to n do c[i - n div 2] : = a[i]; //теперь отсортируем первую "половинку" методом выбора. идея этого метода //основывается на том, что мы ищем минимальный среди неотсортированных элемент, //а затем просто swap-аем его с тем, который стоит сразу после отсортированных. for i : = 1 to (n - 1) div 2 do begin min : = i; for j : = i + 1 to n div 2 do if b[min] > b[j] then min : = j; if min < > i then begin t : = b[i]; b[i] : = b[min]; b[min] : = t; end; end; //затем вторую точно также, только стоит обратить внимание на сравнения. //так как надо отсортировать по убыванию, то теперь сравнение перед "swap"-ом //будет другим. for i : = 1 to (n - 1) div 2 do begin min : = i; for j : = i + 1 to n div 2 do if c[min] < c[j] then min : = j; if min < > i then begin t : = c[i]; c[i] : = c[min]; c[min] : = t; end; end; //а теперь просто по очереди выводим готовые "половинки", не забывая ставить //пробел после вывода каждого элемента. for i : = 1 to n div 2 do write(b[i], ' '); for i : = 1 to n - n div 2 do write(c[i], ' '); end.
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
nazar608200508.08.2020 06:16
-
artursharipoff06.06.2023 03:18
-
vikabosch06.03.2020 16:40
-
derment109.03.2021 04:12
-
Adilet3737373719.10.2022 14:37
-
Alexxxxxxxxxxxxxxxey06.12.2020 10:17
-
hrapatiynickita04.05.2020 23:52
-
BrainSto24.03.2023 02:41
-
Gykplhgv15.01.2023 21:19
-
Fire7303.05.2023 18:57
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.