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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.01.2012, 20:48   #1
serega96
Пользователь
 
Регистрация: 14.12.2011
Сообщений: 62
По умолчанию Метод Шейкера.

Передо мной стоит задача написать программу сортирующую по возрастанию массив 3 способами и подсчитывающую количество действий при сортировке.
У меня всё работает кроме 1 способа - метода Шейкера.
Смысл метода в том, что при первом просмотре массива мы находим максимальный и минимальный элемент и ставим их соответстеннно 1 и последнее место. В следующий раз рассматриваем так же все элементы со второго по предпоследний и повторяем всё это. В процедуре 2 счётчика - один подсчитывает количество сравнений, второй - кол-во перестановок.
Вот сама процедура, вводятся из программы массив и кол-во элементов массива.
PHP код:
Procedure Sort_Metod_Insert(Kol_1:Integer;X:T_Mas);
Var 
V,U,I,H,K,J,A,max,min,maxpos,minpos:Integer;
Begin
V
:=0;
U:=0;
J:=0;
min:=X[1];
max:=X[1];
minpos:=1;
maxpos:=1;
While 
2+J+1<Kol_1 -do
begin
While 2+Kol_1-do
begin
U
:=U+2;
If 
x[2+J]>max then begin max:=x[2+J]; maxpos:= 2+Jend;
If 
x[2+J]<min then begin min:=x[2+J]; minpos:= 2+Jend;
end;
V:=V+2;
A:=x[2+J]; x[2+J]:= minx[minpos]:=A;
A:=x[Kol_1-J]; x[Kol_1-J]:=maxx[maxpos]:=A;
Inc(J);
min:=X[2+J];
max:=X[2+J];
minpos:=2+J;
maxpos:=2+J;
end;

For 
I:=1 to kol do
Write(X[I],' ');
WriteLn;
WriteLn('The number of comparisons - ',U);
WriteLn('The number of permutations - ',V);
WriteLn;
End
Кто может подскажите в чём ошибка у меня вообще ничего не выводит теперь
serega96 вне форума Ответить с цитированием
Старый 19.01.2012, 20:49   #2
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Ну вот вроде, не?
_-Re@l-_ вне форума Ответить с цитированием
Старый 19.01.2012, 20:54   #3
serega96
Пользователь
 
Регистрация: 14.12.2011
Сообщений: 62
По умолчанию

Попробую сейчас, спасибо
serega96 вне форума Ответить с цитированием
Старый 19.01.2012, 21:11   #4
serega96
Пользователь
 
Регистрация: 14.12.2011
Сообщений: 62
По умолчанию

А не можете проверить в чём ошибка у меня
serega96 вне форума Ответить с цитированием
Старый 19.01.2012, 21:13   #5
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Не могу, ибо сам не знаю ,что это за метод Ну разве что завтра посмотрю.
А вы лучше возьмите и перепишите код заново, красивенько, и тогда увидите свои ошибки.
_-Re@l-_ вне форума Ответить с цитированием
Старый 19.01.2012, 21:21   #6
serega96
Пользователь
 
Регистрация: 14.12.2011
Сообщений: 62
По умолчанию

Просто у меня была ошибка в процедуре, я исправил вроде бы всё, а он теперь вообще ничего не выводит от этой процедуры.
serega96 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
исследовать метод квадратных корней и метод Холецкого для решения СЛАУ Vит@x@ Помощь студентам 0 22.11.2011 10:47
Сортировка Шейкера для строкового типа данных Kovax Паскаль, Turbo Pascal, PascalABC.NET 3 07.05.2011 17:15
Метод Шейкера, обнуляет максимальный элемент, почему? leshij Паскаль, Turbo Pascal, PascalABC.NET 10 14.03.2011 20:05
сортировка методом шейкера и пузырька Степан sapral Помощь студентам 1 12.01.2011 19:02
Сортировка двусвязного списка методом шейкера ioda1986 Помощь студентам 0 02.05.2010 00:31