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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 23.11.2009, 21:11   #1
bfm89
 
Регистрация: 23.11.2009
Сообщений: 5
По умолчанию quicksort

pls, pomogite razobratsia s trassirovkoi/realizatsiei algoritma quicksort:

qsort(a,l,u);
begin
K: i:=1, k:=u, r:=a[i];
L: if a[k]<r then begin a[i]:=a[k]; doto Q; end;
M: k:=k-1; if i<k then goto L else goto N;
P: if a[i]>r then begin a[k]:=a[i]; goto M; end;
Q: i:=i+1; if i<k then goto P;
N: a[i]:=r;
if 2*i<l+u then
begin i:=l; l:=k+1; k=:k-1 end
else begin k:=u; u:=i-1; i:=i+1 end;
if i<k then qsort(a,i,k);
if l<u then goto K;
end.

sam algoritm 9 pon9la, a vot to, 4to proishodit na 3-m wage ne o4en'=((((
// kakoi sleduiuwi wag kogda neravenstva i<k, l<u ne 9vl9iutsia takovymi?

Модератор: не пишите на транслите. Есть много сервисов для перевода.
И обращайте внимание на название раздела.

Последний раз редактировалось Sazary; 23.11.2009 в 23:36.
bfm89 вне форума
Старый 23.11.2009, 21:14   #2
nazavrik
Форумчанин
 
Аватар для nazavrik
 
Регистрация: 01.09.2008
Сообщений: 178
Радость

о_0

Я не так уж долго программирую, но с 90% долей вероятности могу сказать, что это не Си.
Быть радикальным - значит понять вещь в её корне. К.Маркс
nazavrik вне форума
Старый 23.11.2009, 22:19   #3
bondik
Форумчанин
 
Регистрация: 24.04.2008
Сообщений: 300
По умолчанию

Это паскаль.Насчет сортировки:

C++
Код:
void quickSortR(T* a, long N) {
// На входе - массив a[], a[N] - его последний элемент.

  long i = 0, j = N; 		// поставить указатели на исходные места
  T temp, p;

  p = a[ N>>1 ];		// центральный элемент

  // процедура разделения
  do {
    while ( a[i] < p ) i++;
    while ( a[j] > p ) j--;

    if (i <= j) {
      temp = a[i]; a[i] = a[j]; a[j] = temp;
      i++; j--;
    }
  } while ( i<=j );


  // рекурсивные вызовы, если есть, что сортировать 
  if ( j > 0 ) quickSortR(a, j);
  if ( N > i ) quickSortR(a+i, N-i);
}
Паскаль
Код:
program Quitsort;
 uses
   crt;
 Const
  N=10;
 Type
  Mas=array[1..n] of integer;
var
  a: mas;
  k: integer;
function Part(l, r: integer):integer;
var
  v, i, j, b: integer;
begin
  V:=a[r];
  I:=l-1;
  j:=r;
  repeat
    repeat
      dec(j)
    until (a[j]<=v) or (j=i+1);
    repeat
      inc(i)
    until (a[i]>=v) or (i=j-1);
    b:=a[i];
    a[i]:=a[j];
    a[j]:=b;
  until i>=j;
  a[j]:=a[i];
  a[i]:= a[r];
  a[r]:=b;
  part:=i;
end;
procedure QuickSort(l, t: integer);
var i: integer;
begin
  if l<t then
    begin
      i:=part(l, t);
      QuickSort(l,i-1);
      QuickSort(i+1,t);
    end;
end;
begin
  clrscr;
  randomize;
  for k:=1 to 10 do
    begin
      a[k]:=random(100);
      write(a[k]:3);
    end;
  QuickSort(1,n);
  writeln;
  for k:=1 to n do
    write(a[k]:3);
  readln;
end.
На весы под ником кликай и спасибо пиши.
bondik вне форума
Закрытая тема


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