タグ付けされた質問 「transitivity」

6
in O(n)time:比較が推移的でないセット内で最大の要素を見つける
タイトルは質問を述べています。 入力として要素のリストがあり、比較することができます(どちらが最も大きいかを判断します)。要素を等しくすることはできません。 キーポイント: 比較は推移的ではありません(じゃんけんを考えてください):これは本当です:A> B、B> C、C> A (ここに有効な答えがないので、これは有効な入力ではないことに注意してください。非推移的比較」という意味) 各入力配列には答えがあることが保証されます 最大は、要素が他のすべての要素よりも大きくなければならないことを意味します 逆の性質が成り立つ、すなわちA> BはB <Aを意味する 例: Input: [A,B,C,D] A > B, B > C, C > A D > A, D > B, D > C Output: D O(n)時間でこれを行う方法がわかりません。私の最善の解決策はO(n ^ 2)です。 答えを確実にするために、要素が他のすべての要素と明示的に比較され、それが実際に答えであることを証明する必要があるという事実のために、すべてのアプローチにこだわっています(比較は推移的ではないため)。 これは、ヒープ、ソートなどの使用を除外します。

4
ソートアルゴリズムには推移性が必要ですか
非推移的比較でソートアルゴリズムを使用することは可能ですか?はいの場合、なぜコンパレーターをソートするための要件として推移性がリストされていますか? バックグラウンド: ソートアルゴリズムは、通常、コンパレータ関数C(x、y)に従ってリストの要素をソートします。 C(x 、y)= ⎧⎩⎨− 10+ 1もし X≺Y もし X〜Y もし X≻Y C(バツ、y)={−1もし バツ≺y0もし バツ〜y+1もし バツ≻y\begin{array}{ll} C(x,y) = \begin{cases} -1 & {\text{if}}\ x\prec y \\ 0 & {\text{if}}\ x\sim y \\ +1 & {\text{if}}\ x\succ y \\ \end{cases} \end{array} 私が理解している限り、このコンパレータの要件は次のとおりです。 再帰的: ∀ X :C(x 、x )= 0∀バツ:C(バツ、バツ)=0\forall x: C(x,x)=0 …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.