Ответы на вопрос:
//метод быстрой сортировки //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
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
andrei82211.08.2021 14:40
-
владгалимуллин21.03.2020 11:47
-
egor2002607.05.2021 00:26
-
katja070908.03.2020 03:20
-
лппериоаоаопоопо10.03.2023 00:21
-
Лебеде14.08.2020 06:07
-
MaGaFaYa06.03.2020 01:33
-
ssyyppeerrmmaax14.03.2020 22:06
-
красав4ик00724.07.2022 11:17
-
ksyunik43529.08.2022 02:58
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.