В обычном английском языке, когда мы сортируем слова по алфавиту, мы используем два правила:
Если два слова имеют одинаковую первую букву, мы сравниваем вторую. Если вторые буквы совпадают, мы сравниваем третьи и т. д. Наконец, одно слово стоит перед другим, если первая отличающаяся буква стоит перед соответствующей буквой.
Если два слова идентичны до длины более короткого слова, более короткое слово идет первым.
Итак, «Том» предшествует «Зубу». Первые буквы идентичны («Т»), вторые буквы идентичны «о», но третьи буквы отличаются, и «м» стоит перед «о». Поэтому «Том» предшествует «Зубу».
«Том» стоит перед «Томас», потому что эти два слова идентичны по первым трем буквам «Том» и «Том» короче, чем «Томас».
Лексикографический порядок — это просто алфавитный порядок, обобщенный для небуквенных значений. Рассмотрим последовательность значений, не обязательно букв:
(1,5,10) предшествует (1,6,3), потому что "5" предшествует "6".
(1,5,10) предшествует (1,5,10,15,20), потому что (1,5,10) короче, чем (1,5,10,15,20).
Лексикографическое упорядочение особенно полезно, если элементы последовательности имеют определенное значение, причем более ранние значения имеют более высокий приоритет. Например, рассмотрим это время: 9:13 и 8:25. Если представить их в виде последовательности (9,13) и (8,25), то (8,25) предшествует (9,13), потому что 8 предшествует 9. Что, если часы одинаковы? Например, (9,13) предшествует (9,45), потому что 13 предшествует 45. Как видите, лексикографический порядок позволяет полю часов иметь более высокий приоритет, чем полю минут.
person
Robᵩ
schedule
24.11.2017
std::next_permutation
. - person Tom Blodget   schedule 25.11.2017