From: Hihin Ruslan <ruslandh@altlinux.ru>
To: devel@lists.altlinux.org
Subject: Re: [devel] [JT] std::sort
Date: Sun, 17 Dec 2006 22:42:52 +0300
Message-ID: <200612172243.08870@ruslandh> (raw)
In-Reply-To: <20061217205419.1f26d7bb@localhost.localdomain>
[-- Attachment #1: Type: text/plain, Size: 2250 bytes --]
Здравствуйте Alex V. Myltsev
В сообщении от Sunday 17 December 2006 20:54 Alex V. Myltsev
написал(a):
> Этого мало. Это у вас вроде строгий частичный порядок получается, но
> он
>
> допускает такую ситуацию: a<b<c<e, a<d<e, пары (b,d) и (c,d)
> несравнимы.
> То есть несравнимость может быть нетранзитивной, а это плохо:
> например,
>
> подают нам на вход последовательность {a,c,d,b,e}; она
> неупорядочена, а
> сравнением соседних элементов мы этого обнаружить не можем. И
> сортировка вся идёт лесом.
Как это не парадоксально, но если читать что несравнимость - это один
из видов равенства, то можно упорядочить в - вашем примере
{a,b,c,d,e} или {a,(b,,d),e} - где (c,d,e) - любая перестановка из c,d,e
Интереснее вариант a<b<c<e, b<d<e, пары (a,d), (c,d) несравнимы
Имеем {a,b,(c,d),e}, т.е. значение (сортировочной меры) несравнимого
элемента должно быть равно максимальному из несравнимых с ней
элементов.
Если-бы упорядочивали по убыванию, а не по возрастанию, то тогда-бы
был минимальный элемент.
В любом случае первый этап такой сортировки - каждому элементу
присвоить сортировочную меру (вес), а потом сортировать уже элементы по
этой сортировочной мере.
Т.е. имеем соизмеримые элементы - с ними всё ясно - всегда можно
проиндексировать их, и несравнимые - для них вначале (до присвоения
реального веса) можно считать, что их вес очень большой и равен
условному максимуму. Но как только находится максимальный вес
несравнимого элемента, присваивается этот вес.
В нашем примере имеем первоначальные веса :
Исходя из b<d<e:
b=1
d=2
e=3
Исходя из a<b<c :
a=1
b=2
c=3
Т.к. у b входит в оба "графа", то имеем откорректированные веса первой
ветки:
b=2; d=3; e=4;
Т.к. все ветки дерева пройдены и все элементы пройдены - имеем :
a=1 b=2 c=3 d=3 e=3
В общем имеем ситуацию сортировки элементов графа
> А требуемый strict weak ordering -- это почти полный порядок, но
> только
> каждый элемент может быть в нескольких экземплярах. "Нестрогий
> полный
> порядок", что ли :).
Это тоже алгоритм, но приводит к дублированию элементов.
>
> > Да я Страуса листал а у него книжка толстая и наполовину
> > бестолковая.
>
> Google лучше.
Может я мои мысли помогут :)
--
С уважением Xихин Руслан
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2006-12-17 19:42 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-09 22:32 [devel] apt virtual packages Alexey Tourbin
2006-10-09 22:41 ` Dmitry V. Levin
2006-10-10 0:40 ` Alexey Tourbin
2006-10-10 15:39 ` Dmitry V. Levin
2006-10-10 15:52 ` Alexey Tourbin
2006-10-10 22:11 ` Dmitry V. Levin
2006-10-11 0:16 ` Alexey Tourbin
2006-10-12 9:18 ` Serge Pavlovsky
2006-12-07 22:52 ` Dmitry V. Levin
2006-12-08 21:27 ` Alexey Tourbin
2006-12-08 21:43 ` Dmitry V. Levin
2006-12-08 21:59 ` Alexey Tourbin
2006-12-08 22:01 ` Dmitry V. Levin
2006-12-08 22:23 ` Dmitry V. Levin
2006-12-13 3:35 ` Alexey Tourbin
2006-12-14 23:40 ` Alexey Tourbin
2006-12-14 23:46 ` Alexey Tourbin
2006-12-14 23:54 ` Alexey Tourbin
2006-12-15 1:25 ` Alexey Tourbin
2006-12-15 13:49 ` Michael Shigorin
2006-12-15 16:52 ` Alexey Tourbin
2006-12-15 22:27 ` Dmitry V. Levin
2006-12-15 22:42 ` Alexey Tourbin
2006-12-16 12:03 ` Alexey I. Froloff
2006-12-16 20:19 ` Alexey Tourbin
2006-12-16 21:02 ` Dmitry V. Levin
2006-12-16 21:08 ` Alexey Tourbin
2006-12-16 21:26 ` Dmitry V. Levin
2006-12-16 21:42 ` Alexey Tourbin
2006-12-17 13:51 ` Alexey I. Froloff
2006-12-17 14:12 ` Alexey Tourbin
2006-12-17 16:47 ` [devel] Papadimitriou Alexey Tourbin
2006-12-17 16:58 ` [devel] apt virtual packages Alex V. Myltsev
2006-12-17 17:45 ` Alexey Tourbin
2006-12-17 17:57 ` [devel] [JT] " Alex V. Myltsev
2006-12-17 18:13 ` Alexey Tourbin
2006-12-17 9:58 ` [devel] " Alexey Tourbin
2006-12-17 10:02 ` Alexey Tourbin
2006-12-17 10:37 ` Alexey Tourbin
2006-12-17 13:43 ` [devel] [PATCH] " Alexey Tourbin
2006-12-17 13:46 ` [devel] gendiff Alexey Tourbin
2006-12-17 14:14 ` [devel] [PATCH] apt virtual packages Alexey Tourbin
2006-12-17 16:09 ` Alexey Tourbin
2006-12-17 16:15 ` Alexey Tourbin
2006-12-17 17:05 ` Hihin Ruslan
2006-12-17 17:17 ` Alexey Tourbin
2006-12-17 16:41 ` Alexey Tourbin
2006-12-17 16:49 ` [devel] std::sort Alex V. Myltsev
2006-12-17 17:15 ` Alexey Tourbin
2006-12-17 17:54 ` [devel] [JT] std::sort Alex V. Myltsev
2006-12-17 18:06 ` Alexey Tourbin
2006-12-17 19:42 ` Hihin Ruslan [this message]
2006-12-17 20:01 ` Hihin Ruslan
2006-12-17 20:33 ` Hihin Ruslan
2006-12-17 20:18 ` Alex V. Myltsev
2006-12-18 7:51 ` Hihin Ruslan
2006-12-18 10:39 ` [devel] [PATCH] apt virtual packages Led
2006-12-18 13:17 ` Alexey Tourbin
2006-12-17 16:51 ` Dmitry V. Levin
2006-12-20 17:25 ` Alexey Tourbin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200612172243.08870@ruslandh \
--to=ruslandh@altlinux.ru \
--cc=devel@lists.altlinux.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git