Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.02.2013, 15:18   #1
Hrum
 
Регистрация: 28.10.2012
Сообщений: 9
Вопрос Быстрая сортировка

Всем здравствуйте, кто меня сейчас читает. Суть темы такова, чтобы написать программу-сортировку, под названием "Быстрая". Посмотрите пожалуйста мой код и если можете проконсультируйте или переделайте мою программу. У меня есть где-то недочёты, которых я не вижу. Буду добр, если поможете!

Еще мне нужно построить график!(не обязательно)
График зависимости числа перестановок(сравнений) от числа элементов последовательности + результат для наилучшего, наихудшего и среднего случая. Но график, можно построить в какой-либо программе или на листке.

Код:
Program QuickSort;
Var 
 A : array[1..1000] of integer;
 N,T,g,s,z,i :integer;{общий вид}
Procedure Sort(p,q : integer); {p,q — индексы начала и конца сортируемой части массива}
Var 
 i,j,r : integer;
Begin
 if p<q then {массив из одного элемента тривиально упорядочен}
  begin
   r:=A[(p+q) div 2];  {за опорный элемент берем середину}
   i:=p-1;
   j:=q+1;
   while i<j do  {все, что >= опорного - влево, все, что < - вправо}
    begin
     repeat begin inc(i); inc(s); end; until A[i]>=r;
     repeat begin dec(j); inc(s); end; until A[j]<=r;
     if i<j then
      begin {тут замена как раз. Будет идти, пока i<j}
       inc(g);
       T:=A[i];
       A[i]:=A[j];
       A[j]:=T;
      end;
    end;
   Sort(p,j); {рекурсивный вызов, сортируется каждый подмассив. условие выхода из рекурсии в строке 9}
   Sort(j+1,q);
  end;
End; {конец процедуры}
 
Begin
 g:=0; {счетчик замены}
 s:=0; {счетчик сравнений}
{Определение размера массива A — N) и его заполнение}
 
{запуск сортирующей процедуры}
Sort(1,N);
{Вывод отсортированного массива A}
for z:=1 to N do write(A[i]);
writeln(A[i]);
End.
Hrum вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Быстрая сортировка(сортировка Хоара). Сортировка фрагмента массива [C++] druger Помощь студентам 0 20.04.2012 15:49
Быстрая сортировка(сортировка хаора) с++ LustHunter Помощь студентам 3 07.10.2011 19:37
Быстрая сортировка Neitrosha Помощь студентам 0 07.12.2010 19:40
быстрая сортировка настолько быстрая Serg12 Помощь студентам 8 28.03.2010 21:31
Быстрая сортировка Syltan Общие вопросы C/C++ 7 18.09.2009 17:35