Лексикографический порядок — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
Строка 23: Строка 23:
 
Например, слово "сон" лексикографически меньше слова "сонный", так как оно является его префиксом. Слово "низ" лексикографически меньше слова "нос", поскольку первые символы совпадают, а второй символ первого слова меньше, чем второй символ второго.
 
Например, слово "сон" лексикографически меньше слова "сонный", так как оно является его префиксом. Слово "низ" лексикографически меньше слова "нос", поскольку первые символы совпадают, а второй символ первого слова меньше, чем второй символ второго.
  
== Примеры с комбинаторными объектами ==  
+
 
 +
 
 +
 
 +
== Примеры ==
 +
* Перестановки
 +
{| cellpadding="4" style="margin-left: left; margin-right: left;"
 +
| [[Файл:Compareperm.png]]
 +
|}
 +
* Сочетания
 +
{| cellpadding="4" style="margin-left: left; margin-right: left;"
 +
| [[Файл:Comparechoose.png]]
 +
|}
 +
* Разбиения на множества
 
{| cellpadding="4" style="margin-left: left; margin-right: left;"
 
{| cellpadding="4" style="margin-left: left; margin-right: left;"
| [[Файл:Compareperm.png|thumb|Перестановки, общий префикс, 4 < 6, поэтому 1-ая перестановка лексикографически меньше]]
+
| [[Файл:Compare part.png]]  
| [[Файл:Comparechoose.png|thumb|Сочетания, общий префикс, 4 < 6, поэтому 1-ое сочетание лексикографически меньше]]
 
| [[Файл:Compare part.png|thumb|Разбиение на слагаемые числа 14, общий префикс, 4 < 9, поэтому 1-ое разбиение лексикографически меньше]]  
 
 
|}
 
|}
  
== Другие примеры ==
+
* Последовательность чисел в любой системе счисления, записанных в фиксированной разрядной сетке (<tex>000</tex>, <tex>001</tex>, <tex>002</tex>, <tex>003</tex>, <tex>004</tex>, <tex>005</tex>, <tex>\dots</tex>, <tex>999</tex>).
* Последовательность чисел в любой системе счисления, записанных в фиксированной разрядной сетке (000, 001, 002, 003, 004, 005, <tex>\dots</tex>, 999).
+
* Порядок слов в словаре. Предполагается, что буквы можно сравнивать, сравнивая их номера в алфавите. Тогда лексикографический порядок {{---}} это, например, <tex>AAA</tex>, <tex>AAB</tex>, <tex>AAC</tex>, <tex>AAD</tex>, <tex>\dots</tex>, <tex>ZZZ</tex>.
* Порядок слов в словаре. Предполагается, что буквы можно сравнивать, сравнивая их номера в алфавите. Тогда лексикографический порядок {{---}} это, например, ААА, ААБ, ААВ, ААГ, <tex>\dots</tex>, ЯЯЯ.
+
* Эти слова тоже записаны в лексикографическом порядке: <tex>airport</tex>, <tex>duck</tex>, <tex>horse</tex>, <tex>house</tex>, <tex>sleep</tex>.
* Эти слова тоже записаны в лексикографическом порядке: азбука, бог, борода, сон, сонный.
 
  
== Ссылки ==
+
== Источники информации==
 
*[http://en.wikipedia.org/wiki/Lexicographical_order Wikipedia {{---}} Lexicographical order]
 
*[http://en.wikipedia.org/wiki/Lexicographical_order Wikipedia {{---}} Lexicographical order]
 
*[http://ru.wikipedia.org/wiki/%D0%9B%D0%B5%D0%BA%D1%81%D0%B8%D0%BA%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%BF%D0%BE%D1%80%D1%8F%D0%B4%D0%BE%D0%BA Википедия {{---}} Лексикографический порядок ]
 
*[http://ru.wikipedia.org/wiki/%D0%9B%D0%B5%D0%BA%D1%81%D0%B8%D0%BA%D0%BE%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B9_%D0%BF%D0%BE%D1%80%D1%8F%D0%B4%D0%BE%D0%BA Википедия {{---}} Лексикографический порядок ]

Версия 01:20, 31 декабря 2014

Определение:
Пусть даны две последовательности [math] ~A = a_1 a_2 ... a_n [/math] и [math] ~B = b_1 b_2 ... b_m [/math]

Тогда последовательность [math] ~A [/math] лексикографически меньше последовательности [math] ~B [/math], если выполняется одно из двух условий:

  • [math] n \lt m [/math] и при этом [math] a_i = b_i [/math] для всех [math]i \in [1 .. n] [/math],
  • [math] \mathcal {9} k\leqslant \min(n, m): a_k \lt b_k [/math] и при этом [math] \mathcal {8} j \lt k ~a_j = b_j [/math].


Приведем псевдокод сравнения последовательностей из элементов множества Т:

function compare(A, B : list <T>)   // Возвращает "LT", если A < B, "GT", если A > B, или "EQ", если последовательности равны
  for i = 1 to min(len(A), len(B)) 
    if A[i] < B[i]                  // i-й элемент А меньше i-го элемента B, но префиксы длины i - 1 равны
      return LT
    if A[i] > B[i]                  // i-й элемент А больше i-го элемента B, но префиксы длины i - 1 равны
      return GT
  if len(A) < len(B)                // А — префикс В, но не равна ей
    return LT
  if len(A) > len(B)                // В — префикс А, но не равна ей
    return GT
  return EQ                         // Длины последовательностей и все элементы равны
Определение:
Последовательности записаны в лексикографическом порядке (англ. lexicographical order), если для любых [math] i\lt j [/math] выполняется неравенство [math] S_i\lt S_j [/math], где [math] S_i [/math] и [math] S_j [/math] последовательности с номерами [math] i [/math] и [math] j [/math].

Например, слово "сон" лексикографически меньше слова "сонный", так как оно является его префиксом. Слово "низ" лексикографически меньше слова "нос", поскольку первые символы совпадают, а второй символ первого слова меньше, чем второй символ второго.



Примеры

  • Перестановки
Compareperm.png
  • Сочетания
Comparechoose.png
  • Разбиения на множества
Compare part.png
  • Последовательность чисел в любой системе счисления, записанных в фиксированной разрядной сетке ([math]000[/math], [math]001[/math], [math]002[/math], [math]003[/math], [math]004[/math], [math]005[/math], [math]\dots[/math], [math]999[/math]).
  • Порядок слов в словаре. Предполагается, что буквы можно сравнивать, сравнивая их номера в алфавите. Тогда лексикографический порядок — это, например, [math]AAA[/math], [math]AAB[/math], [math]AAC[/math], [math]AAD[/math], [math]\dots[/math], [math]ZZZ[/math].
  • Эти слова тоже записаны в лексикографическом порядке: [math]airport[/math], [math]duck[/math], [math]horse[/math], [math]house[/math], [math]sleep[/math].

Источники информации