Форум программистов, компьютерный форум, киберфорум
Алгоритмы
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
4 / 4 / 1
Регистрация: 17.09.2013
Сообщений: 179

Простая сортировка списков

09.01.2014, 09:25. Показов 753. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день, писал алгоритм для простой сортировки списков, но где-то ошибка.
Буду рад, если кто-нибудь по опытнее подскажет)
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
procedure sortsort(head:pel;h:integer);
var i,tmps: integer;
tmp,rab,nach:pel;
begin
GetMem(tmp,SizeOf(Elem)); {выделяем память для раб. буфера}
rab:=head;
i:=0;
 
 
nach:=rab;
while i<h do begin
 tmp:=rab^.p;
 if tmp^.s  > rab^.s then // меняем значения S в элементе, нужен переход на следующий.
{нужно ли менять элементы}
 else begin
  tmps:=tmp^.s; {процедура обмена}
  tmp^.s:=rab^.s;
  rab^.s:=tmps;
  rab:=nach;
 end;
 rab:=rab^.p;
 //tmp:=tmp^.p;
 if rab^.p = nil then
 i:=h;
end;
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.01.2014, 09:25
Ответы с готовыми решениями:

Калькулятор: простая арифметика с помощью списков
У исполнителя Калькулятор две команды, которым присвоены номера: 1. прибавь 1, 2. умножь на 3. Первая из них увеличивает число на...

Быстрая сортировка (сортировка Хоара) для связных списков
есть у кого готовый алгоритм? или подскажите как реализовать

Простая сортировка столбца
Я извиняюсь за такие вопросы, но меня уже просто выключает и в голове каша. Есть столбец со значениями. Следует его отсортировать по...

4
Эксперт функциональных языков программированияЭксперт по математике/физике
4313 / 2105 / 431
Регистрация: 19.07.2009
Сообщений: 3,204
Записей в блоге: 24
09.01.2014, 15:14
Вы бы сначала на словах объяснили, что Вы хотите сделать.
Во-первых, не указаны структуры данных. Из контекста понятно, что речь идёт об односвязном списке целых чисел:
Pascal
1
2
3
4
5
6
type
  el = record
    s: integer;
    p: pel;
  end;
  pel = ^el;
Во-вторых, как называется этот тип сортировки?
Я примерно оцениваю сложность этого алгоритма O(N), N — длина списка, или что-то около того. Простые сортировки имеют сложность O(N^2). Объясните, что Вы хотели написать.
Может, сортировку выборкой или вставка или может пузырьковую? Или что-то по-сложнее?
0
4 / 4 / 1
Регистрация: 17.09.2013
Сообщений: 179
09.01.2014, 16:09  [ТС]
Mysterious Light,
Это список с указателями на паскале, в цитированном моменте я задаю указатель.
я пытался переделать следующий алгоритм для списков, что он самый трудоемкий понимаю, пузырек работающий уже есть)
Pascal
1
2
3
4
5
6
7
8
9
i:=1;
 while i<n do
   if X[i]<=X[i+1] 
     then i:=i+1
   else begin
     z:=X[i]; X[i]:=X[i+1];
     X[i+1]:=z;
     i:=1
   end
0
Эксперт функциональных языков программированияЭксперт по математике/физике
4313 / 2105 / 431
Регистрация: 19.07.2009
Сообщений: 3,204
Записей в блоге: 24
09.01.2014, 16:43
Алгоритм сортировки — круть!)
Скажем, N-1 элемента стоят в правильном порядке, а последний элемент должен был встать в начало. Тогда будет произведено (N-2)(N-1) операций, если я не ошибся. Соответственно, для сортировки обратно-отсортированного списка потребуется O(N^3) итераций. Супер)

http://ideone.com/hinkaj
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
type
  pel = ^el;
  el = record
    s: integer;
    p: pel;
  end;
 
function sortList(head: pel): pel;
var cur: pel;
  procedure swap;
  var t: integer;
  begin
    t := cur^.p^.s;
    cur^.p^.s := cur^.s;
    cur^.s := t;
  end;
begin
cur := head;
if head <> nil then
  while cur^.p <> nil do
    if cur^.s <= cur^.p^.s
      then cur := cur^.p
      else swap;
sortList := head;
end;
P.S. я для удобства вынес в отдельную подпроцедуру swap — обмен двух элементов.
1
4 / 4 / 1
Регистрация: 17.09.2013
Сообщений: 179
09.01.2014, 16:47  [ТС]
Mysterious Light, благодарю)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.01.2014, 16:47
Помогаю со студенческими работами здесь

Простая сортировка массива
Добрый день! Прошу помочь разобраться с лабораторной работой по C++. Задание: &quot;Написать программу в которой: 1) Описать...

Сортировка в отчете (не простая)
Есть два отчета по денежным средствам: 1-й - Итоговая таблица денежных средств в разрезе компаний (титульный лист так сказать) 2-й -...

PHP не простая сортировка
Добрый день. Есть сайт на wordpress и список регионов. Нужно было отсортировать регионы. Всё получилось, только сейчас идёт: ...

Сортировка списков
Как можно из двух списков, допустим с фамилиями, вывести на экран так, чтобы первые были фамилии, начинающиеся на букву А?

Сортировка списков
Доброго всем вечера! Есть небольшой код на Питоне который сортирует список. Если значения в списке заданы заранее то сортировка идет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru