Метод порядок словаря заключается в создании всех договоренностей один за другим в соответствии с идеей сортировки словаря.
В математике, словарь или порядок словаря (также известный как порядок словарного запаса, порядок словаря, алфавитный порядок или порядок словаря) является методом алфавитного порядка, в котором слова, расположенные в алфавитном порядке на основе алфавитного порядка. Это обобщение в основном заключается в определении общего порядка последовательностей (часто называемых словами в информатике) элементов, которые определяют упорядоченный полностью упорядоченный набор элементов (часто называемый алфавитом).
Для расположения чисел 1, 2, 3 ... n последовательность различных расположений определяется путем сравнения последовательности соответствующих чисел один за другим слева направо. Например, для договоренностей 12354 и 12345 из 5 чисел, расположение 12345 находится впереди, а расположение 12354 находится сзади. Согласно этому правилу, первое среди всех договоренностей 5 чисел составляет 12345, а последний - 54321.
Например, все соглашения, состоящие из 1, 2, 3, от малых до большого, являются:
123,132,213,231,312,321
Все договоренности, состоящие из 1, 2, 3, 4:
1234, 1243, 1324, 1342, 1423, 1432,
2134, 2143, 2314, 2341, 2413, 2431,
3124, 3142, 3214, 3241, 3412, 3421,
4123, 4132, 4213, 4231, 4312, 4321.
Во -первых, должна быть указана последовательность символов в данном наборе символов, и на этом основании каждое расположение генерируется в последовательности.
[Пример] Набор символов {1,2,3}, первыми меньшими числами, поэтому полное расположение, генерируемое в порядок в словаре: 123, 132, 213, 231, 312, 321.
Создайте следующую перестановку, учитывая полную перестановку, и так называемый следующий-это строка, прилегающая к следующему без порядка словаря. Это требует, чтобы у этого был такой же префикс как можно дольше, то есть вариация ограничена максимально коротким суффиксом.
Существует определенная связь между последней договоренностью и предыдущей договоренностью. Процесс решения последнего расположения заключается в следующем:
С договоренностью (P) = 2763541, отсортированным по словарю, какова его следующая договоренность?
2763541 (найдите последний положительный порядок 35)
2763541 (найдите последний номер 4 после 3 и больше 3)
2764531 (переключатель 3, 4 позиции)
2764135 (инвертирование 5, 3, 1 после 4)
Ниже приведено описание следующего расположения P [1… N]:
Найти i = max {j | p [j 1] <p [j]} (найти последний положительный порядок)
Найти j = max {k | p [i 1] <p [k]} (найдите последний больше, чем p [i 1])
Exchange P [i 1] и P [j], чтобы получить P [1]… P [i-2] p [j] p [i] p [i+1]… p [J-1] p [i-1] p [j+1]… p [n]
Поверните число после P [j], чтобы получить P [1]… P [i-2] p [j] p [n]… p [j+1] p [i-1] p [j-1]… p [i]
Реализация кода выглядит следующим образом:
Частный статический int [] getpermutation (int [] in) {int [] ns = in; int base = -1; for (int i = ns.length-1; i> = 1; i--) {if (ns [i-1] <ns [i]) {base = i-1;} // это было расположено в последнее, и он находится в обратном порядке. (int i = ns.length-1; i> = base; i--) {if (ns [i]> ns [base]) {Bigger = i; Break;}} // System.out.println (Bigher); Swap (ns, base, bigger); ns, base+1, ns.length-1); влево = i, right = j; while (слева <справа) {swap (ns, слева, справа); левый ++; справа-;}} частное статическое пустое обмен (int [] ns, int base, int bigher) {int temp = ns [base]; ns [base] = ns [Bigher]; ns [Bighger] = temp;}; ns [base] = ns [Bigger];Суммировать
Выше приведено об анализе алгоритма сортировки языкового словаря Java и примеров кода. Я надеюсь, что это будет полезно для всех. Заинтересованные друзья могут продолжать ссылаться на другие связанные темы на этом сайте. Если есть какие -либо недостатки, пожалуйста, оставьте сообщение, чтобы указать это. Спасибо, друзья, за вашу поддержку на этом сайте!