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