Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Request сортировка методом Двоичнго Дерева (Pascal)

-

Вопросы и ответы, обсуждения

- Ваши вопросы по Pascal/Delphi только в данном разделе

Ответ
 
Опции темы
Старый 19.10.2010, 21:46   #1
 Рыцарь-защитник
Аватар для FFForever
 
FFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака Норриса
Регистрация: 08.08.2008
Сообщений: 617
Популярность: 8997
Сказал(а) спасибо: 79
Поблагодарили 826 раз(а) в 405 сообщениях
 
Exclamation Request сортировка методом Двоичнго Дерева (Pascal)

Request сортировка чисел методом Двоичнго Дерева (Pascal)
Чем проще написано тем лучше.
  Ответить с цитированием
Старый 20.10.2010, 10:42   #2
Super Moderator
 Сержант
Аватар для Рэйзор
 
Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(Рэйзор сломал счётчик популярности :(
Регистрация: 20.07.2010
Сообщений: 137
Популярность: 26409
Сказал(а) спасибо: 52
Поблагодарили 566 раз(а) в 197 сообщениях
 
По умолчанию Re: Request сортировка методом Двоичнго Дерева (Pascal)

Называй проще - это сортировка методом хипа (кучи):
Это мое решение под делфи:
Код:
program HeatSort;
{$R+}
{$O-}
{$APPTYPE CONSOLE}
uses
  SysUtils;
var n,i,hs,s,y:longint;
    h,a: packed array[1..100000] of integer;
procedure siftup(i:longint);
begin
  if i=1 then
    exit;
  if h[i]<h[i div 2] then
    begin
      y:=h[i];
      h[i]:=h[i div 2];
      h[i div 2]:=y;
      siftup(i div 2);
    end;
end;
procedure Siftdown(i:longint);
begin
  if (2*i<=hs) and (h[2*i]<h[i]) then
    s:=2*i else
      s:=i;
  if (2*i+1<=hs) and (h[2*i+1]<h[s]) then
    s:=2*i+1;
  if s<>i then
    begin
      y:=h[s];
      h[s]:=h[i];
      h[i]:=y;
      siftdown(s);
    end;
end;
procedure Delete(i:longint);
begin
  h[i]:=h[hs];
  dec(hs);
  siftdown(i);
end;
procedure Add(x:longint);
begin
  inc(hs);
  h[hs]:=x;
  siftup(hs);
end;
begin
  reset(input,'input.txt');
  rewrite(output,'output.txt');
  read(n);
  hs:=0;
  for i := 1 to n do
    read(a[i]);
  for i := 1 to n do
    add(a[i]);
  for i := 1 to n do
    begin
      a[i]:=h[1];
      Delete(1);
    end;
  for i := 1 to n do
    write(a[i],' ');
end.
для паскаля убери:
Код:
{$R+}
{$O-}
{$APPTYPE CONSOLE}
uses
  SysUtils;
Самая простая реализация, работает за O(N*logN)
Вроде есть какая-то модифицированная версия, работающая за O(logN) - но я ее не знаю)

Если нужны другие типы сортировок - пиши.

Пы сы: если будет ругаться - сотри слово packed из var'а
________________
-> Keep2Me <-

Последний раз редактировалось Рэйзор; 20.10.2010 в 10:52.
  Ответить с цитированием
Старый 21.10.2010, 23:55   #3
 Рыцарь-защитник
Аватар для FFForever
 
FFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака НоррисаFFForever троюродный дядя Чака Норриса
Регистрация: 08.08.2008
Сообщений: 617
Популярность: 8997
Сказал(а) спасибо: 79
Поблагодарили 826 раз(а) в 405 сообщениях
 
По умолчанию Re: Request сортировка методом Двоичнго Дерева (Pascal)

Цитата:
Сообщение от Z.РэйзорПосмотреть сообщение
Называй проще - это сортировка методом хипа (кучи)

Проще это метод двоичного дерева
Во вторник затестю.
  Ответить с цитированием
Старый 05.12.2012, 11:59   #4
 Разведчик
Аватар для Dzhakomaus
 
Dzhakomaus никому не известный тип
Регистрация: 17.11.2012
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Request сортировка методом Двоичнго Дерева (Pascal)

Можете пожалуйста скинуть код такой же сортировки только в обратном порядке
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Программа] TrueSort - сортировка словарей. От ErrorNeo talala Базы серверов и брут 0 13.06.2010 23:08
[Помогите!] У Кого 7х64 Винда Скажите с реестра двоичный бинарный код Фроста pankpirat Общение и обсуждение, архив Point Blank 9 30.05.2010 22:42
[Файл] Awp With Laser (request) IIIypuk Прочий софт для Counter-Strike 7 19.11.2009 18:38

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 07:27.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net