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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2007, 15:39   #1
radist
Пользователь
 
Аватар для radist
 
Регистрация: 17.12.2006
Сообщений: 22
Вопрос Помогите с сортировкой

Помогите пожалуйста с сортировкой. Программа не выводит нужный ответ т.е. отсортированный массив.
Program sortirovka;
uses crt;
Type massiv = array [1..15] of integer;
var
i0,j0,i,j,si,sj,k,ke,m,t:integer;
a: massiv;
begin
clrscr;
Writeln (' Cортировка по парныим слиянием');
Writeln;
for i := 1 to 15 do a[i]:= random(15);
Writeln ('Массив случайных чисел:');
for i:=1 to 15 do write (a[i]:3); {заполнение массива случайными числами}
Writeln; Writeln;

begin {сортировка по парным слиянием}
si:=1; {начальный размер одного множества}
while si<15 do {цикл, пока одно множество не составит весь массив}
begin
i0:=1; {начальный индекс 1-ого множества пары}
while i0<15 do {цикл, пока не пересмотрим весь массив}
begin
j0:=i0+si; {начальный индекс 2-ого множества пары}
i:=i0;
j:=j0;
{размер 2-ого множества пары может ограничиваться концом массива}
if si>15-j0+1 then sj:=15-j0+1 else sj:=si;
if sj>0 then
begin
k:=i0; {начальный индекс слитого множества}
while (i<i0+si+sj) and (j<j0+sj) do {цикл, пока не исчерпаются
оба входные множества}
begin
if a[i]>a[j] then {если элемент 1-ого <= элемента 2-ого, он остается на
своём месте, но выходное множество расширяется иначе - освобождается место
в выходном множестве и туда заносится элемент второго множества}
begin
t:=a[j];
for m:=j-1 downto k do a[m+1]:=a[m];
a[k]:=t;
j:=j+1; {к следуещиму элементу во 2-м множестве}
end; { if a[i] > a[j] }
k:=k+1; {выходное множество увеличелось}
i:=i+1; {если был перенос - за счет сдвига, если не было - за счет
перехода элемента в выходное множество}
end; {while}
end; {if sj>0}
i0:=i0+si*2; {начало следующей пары}
end; {while i0<15}
si:=si*2; {размер элементов пары увеличивается вдвое}
end; {while si<15}
end;
for i:=1 to 15 do write (a[i]:3);
Writeln (a[j]);
readln;
end.
Заранее благодарен.
От великого до смешного - один шаг.
radist вне форума Ответить с цитированием
Старый 22.04.2007, 15:44   #2
SteelRat
Брэйнфакер Про
Пользователь
 
Аватар для SteelRat
 
Регистрация: 21.02.2007
Сообщений: 51
По умолчанию

Ёпрст, даже поисковик использовать не надо, который я и сам не люблю. Но на одной странице сейчас несколько тем по сортировке. Куда уж больше то?
SteelRat вне форума Ответить с цитированием
Старый 22.04.2007, 22:35   #3
radist
Пользователь
 
Аватар для radist
 
Регистрация: 17.12.2006
Сообщений: 22
По умолчанию

Понимаю, но деваться мне некуда. Делать то все равно надо.
От великого до смешного - один шаг.
radist вне форума Ответить с цитированием
Старый 22.04.2007, 22:49   #4
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

Тебе нужен определенный алгоритм сортировки или подойдет любой?
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 23.04.2007, 09:06   #5
radist
Пользователь
 
Аватар для radist
 
Регистрация: 17.12.2006
Сообщений: 22
По умолчанию

Нужна только, сортировка по парным слиянием.
От великого до смешного - один шаг.
radist вне форума Ответить с цитированием
Старый 23.04.2007, 12:50   #6
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

http://alglib.sources.ru/translator/...ort.delphi.zip
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с сортировкой. Dissonance БД в Delphi 14 05.06.2008 15:35
Помогите с MSD сортировкой! vova_b Помощь студентам 6 28.05.2008 20:33
Помогите решить вопрос с сортировкой ! slavun Microsoft Office Excel 2 31.01.2008 15:14
Помогите с сортировкой AHTOXA Общие вопросы Delphi 2 08.06.2007 12:46