تتمثل طريقة ترتيب القاموس في إنشاء جميع الترتيبات واحدة تلو الأخرى وفقًا لفكرة فرز القاموس.
في الرياضيات ، فإن أمر القاموس أو القاموس (المعروف أيضًا باسم أمر المفردات ، أو ترتيب القاموس ، أو الترتيب الأبجدي ، أو ترتيب القاموس) هو وسيلة للترتيب الأبجدي الذي ترتيب فيه الكلمات الأبجدية بناءً على الترتيب الأبجدي. يكمن هذا التعميم بشكل أساسي في تحديد الترتيب الكلي للتسلسل (غالبًا ما يسمى الكلمات في علوم الكمبيوتر) للعناصر التي تحدد مجموعة من العناصر المرتبة بالكامل (تسمى في كثير من الأحيان الأبجدية).
لترتيب الأرقام 1 ، 2 ، 3 ... n ، يتم تحديد تسلسل الترتيبات المختلفة من خلال مقارنة تسلسل الأرقام المقابلة واحدة تلو الأخرى من اليسار إلى اليمين. على سبيل المثال ، بالنسبة للترتيبات 12354 و 12345 من الأرقام الخمسة ، يكون الترتيب 12345 في المقدمة وترتيب 12354 في الخلف. وفقًا لهذه اللائحة ، فإن أول ترتيبات من جميع الأرقام الخمسة هي 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 (Invert 5 ، 3 ، 1 بعد 4)
فيما يلي وصف للترتيب التالي لـ P [1 ... n]:
البحث i = max {j | p [j 1] <p [j]} (ابحث عن آخر ترتيب إيجابي)
Find 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 static int [] 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 ؛ break ؛ (int i = ns.length-1 ؛ i> = base ؛ i--) {if (ns [i]> ns [base]) {bigger = i ؛ break ؛}} // system.out.println (bigger) ؛ swap (ns ، base ، bigger) ؛ revers left = i ، يمين = j ؛ بينما (يسار <يمين) {swap (ns ، اليسار ، يمين) ؛ اليسار ++ ؛ يمين-؛}} تبديل الفراغ الثابت الخاص (int [] ns ، int base ، int أكبر) {int temp = ns [base] ؛ ns] = ns [bigger] ؛لخص
ما سبق هو كل شيء عن تحليل خوارزمية فرز قاموس Java والأمثلة. آمل أن يكون ذلك مفيدًا للجميع. يمكن للأصدقاء المهتمين الاستمرار في الرجوع إلى الموضوعات الأخرى ذات الصلة على هذا الموقع. إذا كانت هناك أي أوجه قصور ، فيرجى ترك رسالة لإشارةها. شكرا لك يا أصدقائك لدعمكم لهذا الموقع!