Ответы на вопрос:
//метод быстрой сортировки //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
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Psix00704.06.2021 21:58
-
juanabakar12.09.2021 22:06
-
простой3011.08.2021 07:48
-
romchik22866625.01.2023 00:12
-
blacktop5709.06.2023 08:23
-
Мимиf09.11.2021 22:21
-
jon1007959522.02.2023 01:57
-
Krank0913.05.2023 03:12
-
akrontsova28.03.2023 01:38
-
VILI757518.01.2023 06:06
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.