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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.11.2008, 20:57   #1
xxxPascalxxx
Life:[### ]22%
Пользователь
 
Аватар для xxxPascalxxx
 
Регистрация: 15.12.2007
Сообщений: 48
Вопрос Сортировка массива способом Шелла "степени двойки"

Большая просьба.
Формируем случайный массив (случайные числа в диапазоне от 0 до 10*N, N - размерность массива)
После чего его надо отсортировать выше указанным способом.
Если можете, напишите код сортировки пожалуйста. Спасибо заранее.
My Life v1.0b ERROR: health.dll not found
xxxPascalxxx вне форума Ответить с цитированием
Старый 15.11.2008, 21:16   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот из ДелфиВорлд:
Код:
 { Соpтиpовка Шелла }
 Procedure Sort( var a : array of integer);
 Var d, i, t : integer;
    k : boolean; { пpизнак пеpестановки }
   begin
   d:=N div 2;  { начальное значение интеpвала }

   while d>0 do begin { цикл с yменьшением интеpвала до 1 }

     { пyзыpьковая соpтиpовка с интеpвалом d }
     k:=true;
     while k do begin  { цикл, пока есть пеpестановки }
       k:=false; i:=1;
       for i:=1 to N-d do begin
         { сpавнение эл-тов на интеpвале d }
         if a[i]>a[i+d] then begin
           t:=a[i]; a[i]:=a[i+d]; a[i+d]:=t; { пеpестановка }
           k:=true;  { пpизнак пеpестановки }
           end; { if ... }
         end; { for ... }
       end; { while k }
     d:=d div 2;  { yменьшение интеpвала }
     end;  { while d>0 }
 end;
Еси ниче не напутал )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.11.2008, 21:58   #3
xxxPascalxxx
Life:[### ]22%
Пользователь
 
Аватар для xxxPascalxxx
 
Регистрация: 15.12.2007
Сообщений: 48
По умолчанию

Большое спасибо!
My Life v1.0b ERROR: health.dll not found
xxxPascalxxx вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует skobets Общие вопросы C/C++ 2 03.06.2008 06:51
Алгоритм "перемешивания" массива в Delphi MusicMan Помощь студентам 4 26.04.2008 21:06
Excel файл открывается не "до конца" (странички "не показываются" только серое поле) Dorvir Microsoft Office Excel 2 28.03.2008 10:03
Создаю диаграмму "Bar". Подскажите как убрать растояние между "столбами" MAcK Компоненты Delphi 11 24.10.2007 10:49