Есть ответ 👍

Задать массив из 10 элементов случайным образом из отрезка[-10;20]. Отсортировать элементы массива по убыванию методом обмена («пузырек»). (Pascal)

109
277
Посмотреть ответы 1

Ответы на вопрос:

Olegarxi
4,7(21 оценок)

//метод быстрой сортировки //pascal abc.net v3.1 сборка 1172 //по возрастанию const n=55; type ty=array[1..n] of integer; var ar: ty; s: integer; procedure quicksort(l,r: integer); var i,j,x,temp: integer;   begin   i: =l; //левый конец   j: =r; //правый конец   x: =ar[random(r-l+1)+l];     repeat       while ar[i]< x do inc(i); //пока выбранный элемент больше всех, что левее его(всё норм), увеличивать индекс       while x< ar[j] do dec(j); //пока выбранный элемент меньше всех, что правее его(всё норм), уменьшать индекс       if i< =j then //если левый индекс меньше или равен правому-продолжать         begin               temp: =ar[i];               ar[i]: =ar[j];               ar[j]: =temp;               inc(i); //чтобы не запустить бесконечную рекурсию               dec(j);         end;       until i> =j;   if l< j then quicksort(l,i); //l-левый конец нового витка, j-правый   if r> i then quicksort(i,r); //r-левый конец нового витка, i-правый end; begin randomize; writeln('first array: '); for s: =1 to n do   begin   ar[s]: =random(n);   write(ar[s]: 4);   end; quicksort(1,n); writeln; writeln('final array: '); ar.println; end. //по убыванию const n=55; type ty=array[1..n] of integer; var ar: ty; s: integer; procedure quicksort(l,r: integer); var i,j,x,temp: integer;   begin   i: =l; //левый конец   j: =r; //правый конец   x: =ar[random(r-l+1)+l];     repeat       while ar[i]> x do inc(i); //пока выбранный элемент больше всех, что левее его(всё норм), увеличивать индекс       while x> ar[j] do dec(j); //пока выбранный элемент меньше всех, что правее его(всё норм), уменьшать индекс       if i< =j then //если левый индекс меньше или равен правому-продолжать         begin               temp: =ar[i];               ar[i]: =ar[j];               ar[j]: =temp;               inc(i); //чтобы не запустить бесконечную рекурсию               dec(j);         end;       until i> =j;   if l< j then quicksort(l,i); //l-левый конец нового витка, j-правый   if r> i then quicksort(i,r); //r-левый конец нового витка, i-правый end; begin randomize; writeln('first array: '); for s: =1 to n do   begin   ar[s]: =random(n);   write(ar[s]: 4);   end; quicksort(1,n); writeln; writeln('final array: '); ar.println; end.

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS