Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Паскаль
Регистрация

Восстановить пароль
Повторная активизация e-mail

Excel VBA, CAD, Софт, ОС, Windows, Ubuntu, Android, VPS
Win Api, Assembler, C++, Java, Pascal, Lazarus, Delphi, OpenGL, DirectX
C#, Qt, .NET, ASP.NET, Windows Forms, ADO.NET, Framework, WPF, UWP, WinRT, XAML
HTML, CSS, JavaScript, Ajax, PHP, Perl, Python, Ruby, SQL, WordPress, API, XML, JSON, ActionScript, Flash

Ответ
 
Опции темы
Старый 16.03.2017, 00:13   #1
Panchess
 
Регистрация: 16.03.2017
Сообщений: 4
Репутация: 10
По умолчанию Использование быстрой сортировки (по методу Хоара) - Pascal ABC

В данном двумерном массиве упорядочить по возрастанию элементы, расположенные между первым и последним отрицательными элементами.
Panchess вне форума   Ответить с цитированием
Старый 20.03.2017, 19:36   #2
Panchess
 
Регистрация: 16.03.2017
Сообщений: 4
Репутация: 10
По умолчанию

Необходимо изменить под быструю сортировку(Хоара).
Код:

const nmax=10;
procedure Swap(var a,b:integer);
var tmp:integer;
begin
tmp:=a;
a:=b;
b:=tmp;
end;
var a:array[1..nmax,1..nmax] of integer;
    m,n,i,j,k,i1,j1,ip,jp,o1,op:byte;
    x:integer;
begin
repeat
randomize;
write('Количество строк до ',nmax,' m=');
readln(m);
until m in [1..nmax];
repeat
write('Количество столбцов до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Исходная матрица:');
o1:=0;
op:=0;
k:=0;
for i:=1 to m do
 begin
  for j:=1 to n do
   begin
    a[i,j]:=-10+random(21);
    write(a[i,j]:4);
    inc(k);
    if a[i,j]<0 then
    if o1=0 then
     begin
      i1:=i;
      j1:=j;
      o1:=k;
     end
    else
     begin
      ip:=i;
      jp:=j;
      op:=k;
     end;
   end;
  writeln;
 end;
if o1=0 then write('Нет отрицательных элементов')
else
 begin
  writeln('Первый отрицательный элемент a[',i1,',',j1,']=',a[i1,j1],' его номер по порядку=',o1);
  if op=0 then writeln('Второго отрицательного элемента нет')
  else
   begin
    writeln('Последний отрицательный элемент a[',ip,',',jp,']=',a[ip,jp],' его номер по порядку=',op);
    if op-o1=1 then writeln('Между первым и последним отрицательными нет других элементов')
    else
     begin
      for i:=o1+1 to op-o1-1 do
      for j:=i+1 to op-o1 do
      if a[(i-1)div n+1,(i-1)mod n+1]>a[(j-1)div n+1,(j-1)mod n+1]
      then Swap(a[(i-1)div n+1,(i-1)mod n+1],a[(j-1)div n+1,(j-1)mod n+1]);
      writeln('Отсортированная матрица:');
      for i:=1 to m do
       begin
        for j:=1 to n do
        write(a[i,j]:4);
        writeln;
       end;
     end;
   end;
 end;
end.

Panchess вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пример быстрой сортировки массива строк и сортировки методом выбора Вероника99 Помощь студентам 1 12.12.2016 20:23
Алгоритмы сортировки пирамидальный(кучей) и быстрой сортировки (с++) mmd12 Помощь студентам 4 17.05.2012 14:14
Сортировка двумерного массива по столбцам методом быстрой сортировки( Хоара) и пирамидальной. tworc22 Помощь студентам 3 28.10.2011 23:05
Метод быстрой сортировки Хоора Pascal Бармалей Помощь студентам 8 18.11.2009 22:21
сортировка массива Методом Хоара (быстрой сортировкой) wild-weight Паскаль 3 26.09.2009 16:46




10:58.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


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

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru