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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2011, 16:08   #1
bender_prog
 
Регистрация: 06.01.2011
Сообщений: 4
По умолчанию программа реализации алгоритма "Сравнение и подсчет" сортировки для АТД «Очередь» (с одной головой)

Добрый день.

задание: необходимо используя разработанный АТД и указанный набор операций, необходимо реализовать заданный алгоритм сортировки последовательности динамических элементов

прошу помочь написать программу
есть пример реализации алгоритма пузырьковой сортировки для АТД «Очередь» (очередь с одной головой).

необходимо из него переделать под "сравнение и подсчет"

если кто возьмется просьба сказать цену
оплата вмр, или на телефон (как удобнее)
нужно к вечеру 7.01.10

icq: 577-508-483

Код:
type ochered=^Rec;
     Rec=record
     info:    integer;
     next:    ochered;
     end;
var
head, head1:  ochered;
n, i, j, z, k,  y, x, x1: integer;
nop:real;
procedure push(var head:ochered; x:integer);  
var a:        ochered;
begin
    new(a);                                
    a^.info:=x;                            
    a^.next:=head;                         
    head:=a;                               
end;                                       
procedure pop(var head:ochered; var x:integer);  
var a, p:     ochered;
begin
   a:=head;  p:=head;                   
       while a^.next<>nil do begin       
         p:=a; a:=a^.next;               
       end;
   x:=a^.info; p^.next:=nil;             
   dispose(a);                           
end;                                     
function empty(head:ochered): boolean;    
begin
   empty:=head=nil;                      
end;
procedure iniz(var head:ochered; var n:integer);  
var x, i:      integer;
begin
   for i:= 1 to n do begin
      x:=Random(501)+300;             
      push(head,x);                   
   end;
end;                                 
BEGIN
  
n:=10;
head:=nil;
iniz(head,n);
head1:=nil;

 For i:= 1 to n-1 do                
   For j:= n downto i+1 do begin    
    if not empty(head1) then begin  
    head:=head1;                    
    head1:=nil;                     
   end;
    
 For z:=1 to j-2 do begin       
       pop(head,y); push(head1,y);
      end;
   pop(head,x); pop(head,x1); 
          If x>x1 then begin       
             push(head1,x); push(head1,x1);end 
          else begin
             push(head1,x1); push(head1,x);end; 
           If j<n then begin                    

             For k:= 1 to n-j do begin      

              pop(head,y); push(head1,y);       
             end;
            end;
 end;
For i:= 1 to n do begin
pop(head1,x);
writeln(x);
end;
readln;
END.

Последний раз редактировалось bender_prog; 06.01.2011 в 16:11.
bender_prog вне форума Ответить с цитированием
Старый 07.01.2011, 10:36   #2
bender_prog
 
Регистрация: 06.01.2011
Сообщений: 4
Восклицание

кто-нибудь, помогите!
к завтрашнему дню надо....
bender_prog вне форума Ответить с цитированием
Старый 07.01.2011, 12:11   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

>под "сравнение и подсчет"
А что это за алгоритм такой?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.01.2011, 18:09   #4
rubius2008
Форумчанин
 
Регистрация: 19.03.2010
Сообщений: 409
По умолчанию

могу помочь если еще актуально
Есть вопросы, пишите в ЛС.
rubius2008 вне форума Ответить с цитированием
Старый 07.01.2011, 22:05   #5
bender_prog
 
Регистрация: 06.01.2011
Сообщений: 4
По умолчанию

В методе подсчета сравнений используется вспомогательный массив,
который обнуляется. Организуется цикл, в котором происходит
подсчет для каждого элемента исходного массива количество элементов,
которые меньше данного и это число записывается в спомогательный массив
(если сортировка по возрастанию). Затем берутся элементы из
вспомогательного массива, они увеличиваются на 1 (это число k) и
уже упорядоченый массив образуется путем постановки на k место
упорядоченного массива элементов исходного массива.


уже делают, спасибо
bender_prog вне форума Ответить с цитированием
Старый 08.01.2011, 00:04   #6
Allock
Новичок
Джуниор
 
Регистрация: 07.01.2011
Сообщений: 0
По умолчанию

Ай-яй-яй Дима, а если мы все Филатову расскажем..?
Allock вне форума Ответить с цитированием
Старый 08.01.2011, 01:08   #7
bender_prog
 
Регистрация: 06.01.2011
Сообщений: 4
По умолчанию

он этого не переживет, ну и я тоже)
есть че по сабжу то?))
bender_prog вне форума Ответить с цитированием
Старый 08.01.2011, 01:17   #8
bender_prog
 
Регистрация: 06.01.2011
Сообщений: 4
Восклицание

тему можно закрывать
bender_prog вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в алгоритме сортировки в теме "ДЛЯ СТУДЕНТОВ !!!" Darth.Vader Общие вопросы C/C++ 0 06.12.2009 15:21
Паскаль.Программа "Верификация", "Кака бригадиру разделить заработанные деньги?".Сложные Valik102 Помощь студентам 11 23.06.2009 15:30
Паскаль.Программа "Верификация", "Кака бригадиру разделить заработанные деньги?".Сложные Valik102 Паскаль, Turbo Pascal, PascalABC.NET 3 23.06.2009 09:11
Паскаль. 2 задачи (Программа "Верификация","КАК БРИГАДИРУ РАЗДЕЛИТЬ ЗАРОБОТАННЫЕ ДЕНЬГИ") Valik102 Помощь студентам 3 20.05.2009 20:42
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51