IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Сортировка связанного списка, методом пузырька, срочно
сообщение
Сообщение #1


Гость






Сортировка связанного списка методом "пузырька". Точнее надо этот код преобразовать для списка. Здесь с объектом, но это важно:

procedure O_Array.Job;
var
i,k,b:integer;
f:boolean;
begin
if M=0 then
begin
writeln('Error! Array is not create!');
writeln('Press any key...');
readkey;
exit;
end;

K:=M;
repeat
K:=K-1;
f:=true;
for i:=1 to K do
if a^[i]<a^[i+1] then
begin
b:=a^[i];
a^[i]:=a^[i+1];
a^[i+1]:=b;
f:=false;
end;
until f;
end;
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Для реалиации сортировки пузырем, тебе надо реализовать SWAP для 2 элементов списка.
FAQ читал? если да, то в реализации SWAP'a проблемм не будет!
p.s. кстати swap не обызательно делать для звена списка, достаточно для информационной части списка- так проще будет....


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Мне бы с исходником, а то я воще не шарю
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Массив A как описан, можно посмотреть? Если его элементы достаточно большого размера, то придется мудрить с указателями, иначе Oleg_Z прав, легче поменять сами элементы...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


volvo, ты имеешь ввиду под
Цитата
элементы достаточно большого размера

sizeof от элемента массива?
А где та граница, за которой надо будет мудрить с указателями?
Кстати интересно, что быстрее будет - поменять информационные части или мудрить с указателями?


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гость






Сколько указателей надо поменять, чтобы "поменять" местами 2 элемента списка? Естественно, если элемент массива - Byte или Integer, то проще поменять местами сами элементы... Если же у тебя A[i] это
Array [1 .. 75] Of LongInt
то я бы сильно подумал, прежде чем перетягивать такие объемы с места на место... ведь эта функция при пузырьковой сортировке будет выполняться сотни (если не тысячи) раз, так зачем же переносить данные, если можно сделать несколько операций с указателями?
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Тогда надо вообщетак
IF размер допускает Then перемещаем элементы
else меняем указатели.

Только надо расчитать что это за размер "размер допускает", .....
думаю так будет наиболее функционально smile.gif


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Гость






Всем спасибо! Я уже сам сделал!
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


По идее, граница между "размер позволяет" и нет - что больше по размеру, указатель или содержимое. Указатель... эээ... ммм... двойное слово?


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 1.09.2025 20:19
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name