يعد الفرز من أهم العمليات عند العمل مع المتجهات والمصفوفات. يسمح لك بترتيب العناصر وفقا لمعيار معين وتسهيل المزيد من معالجة البيانات. أحد أكثر أنواع الفرز شيوعا هو الفرز التنازلي. في هذه المقالة ، سنلقي نظرة على تعليمات فرز المتجه س بترتيب تنازلي ونقدم أمثلة على تطبيقه.
لفرز المتجه س بترتيب تنازلي ، يمكننا استخدام وظيفة الفرز المتوفرة في العديد من لغات البرمجة. لتحديد الفرز التنازلي ، سنحتاج إلى استخدام معلمة إضافية تسمح لنا بتغيير ترتيب الفرز. على سبيل المثال ، في لغة البرمجة سي programming ، يمكنك استخدام المعلمة ستد::أكبر عند استدعاء وظيفة الفرز.
الأمراض المنقولة جنسيا::نوع (س.تبدأ () ، س. نهاية () ، الأمراض المنقولة جنسيا:: أكبر());
العودة 0;
- }
- في هذا المثال ، نعلن عن متجه س ونملأه بالقيم. ثم نسمي وظيفة الفرز ونمررها بداية ونهاية المتجه ، وكذلك كائن الأمراض المنقولة جنسيا:: أكبر ، مما يغير ترتيب الفرز إلى تنازلي. بعد تنفيذ هذه الوظيفة ، سيتم فرز المتجه س بترتيب تنازلي.
- وبالتالي ، قمنا بمراجعة التعليمات الخاصة بفرز المتجه س بترتيب تنازلي وقدمنا مثالا على استخدام وظيفة الفرز. ستعمل هذه الطريقة على ترتيب عناصر المتجه بشكل فعال وتبسيط العمل اللاحق مع البيانات.
- تعليمات وأمثلة لفرز المتجه س بترتيب تنازلي
- التحضير للفرز
فرز المتجهات س بترتيب تنازلي باستخدام وظائف مدمجة
فرز المتجه س بترتيب تنازلي باستخدام خوارزمية فرز الفقاعة
فرز المتجهات س بترتيب تنازلي باستخدام خوارزمية فرز سريعة
سؤال وجواب
كيف يمكنني فرز ناقلات في ترتيب تنازلي?
كيف يمكنني فرز ناقلات في ترتيب تنازلي دون استخدام نوع قياسي () وظيفة?
كيف يمكنني التحقق مما إذا تم فرز المتجه بترتيب تنازلي?
تعليمات وأمثلة لفرز المتجه س بترتيب تنازلي
- يعد فرز المتجه بترتيب تنازلي عملية شائعة في البرمجة. هناك العديد من الخوارزميات والوظائف لهذا ، اعتمادا على لغة البرمجة المستخدمة.
- فيما يلي مثالان على فرز المتجهات س بترتيب تنازلي باستخدام بايثون:
- مثال 1:
- عاشرا = [5, 2, 1, 4, 3]
- فرز_س = مرتبة (س ، عكس = صحيح)
طباعة (مصنفة)
النتيجة:
5
4
3
- 2
- 1
- المثال 2:
- عاشرا = [5, 2, 1, 4, 3]
- س. فرز (عكس = صحيح)
طباعة (خ)
النتيجة:
5
4
3
2
1
يوضح كلا المثالين فرز القائمة س بترتيب تنازلي. يستخدم المثال الأول الدالة التي تم فرزها () ، والتي ترجع قائمة مرتبة جديدة. يستخدم المثال الثاني طريقة الفرز () ، التي تقوم بفرز قائمة الإدخال.
هناك أيضا وظائف وطرق فرز مماثلة في لغات البرمجة الأخرى مثل ج Java, جافا, جافا سكريبت ، إلخ. تحقق من توثيق لغة معينة لمعرفة الوظائف والأساليب المستخدمة لفرز المتجه بترتيب تنازلي.
التحضير للفرز
قبل البدء في فرز المتجه س بترتيب تنازلي ، تحتاج إلى التأكد من أن المتجه يحتوي على عناصر يمكن فرزها. إذا كان المتجه فارغا أو يتكون من عنصر واحد ، فإن الفرز لا معنى له ، لأن النتيجة ستكون هي نفسها المتجه الأصلي.
إذا كان المتجه يحتوي على عناصر من أنواع مختلفة (على سبيل المثال ، الأرقام والسلاسل) ، فمن الضروري قبل الفرز تحديد نوع العناصر التي يجب أن تكون لها الأولوية عند الفرز. في حالة الأرقام ، سيتم إجراء الفرز حسب قيمتها العددية ، وفي حالة السلاسل-بالترتيب الأبجدي.
في بعض الأحيان قد يكون من الضروري فرز نطاق معين فقط من العناصر المتجهة. للقيام بذلك ، يمكنك استخدام وظائف البداية() والنهاية () ، مع تحديد النطاق الذي تريد فرزه.
يوصى أيضا بالتحقق مما إذا كانت هناك حاجة لاستخدام أمر فرز خاص قبل الفرز. على سبيل المثال ، إذا كنت تريد فرز متجه بترتيب تنازلي ، فيمكنك استخدام معلمات دالة فرز إضافية عن طريق تحديد ترتيب الفرز المطلوب.
فرز المتجهات س بترتيب تنازلي باستخدام وظائف مدمجة
فرز المتجه بترتيب تنازلي هو عملية ترتيب عناصر المتجه من القيمة الأكبر إلى الأصغر. هناك وظائف مدمجة في ج that التي يمكن أن تساعد في هذه العملية.
واحدة من هذه الوظائف هي الأمراض المنقولة جنسيا:: فرز. يتم تعريفه في ملف الرأس. وظيفة ستد:: فرز يمكن أن تأخذ عدة وسيطات ، ولكن الحجة الرئيسية هي مجموعة من العناصر التي تحتاج إلى فرز.
لفرز ناقلات س في ترتيب تنازلي باستخدام الأمراض المنقولة جنسيا::يجب تمرير الفرز إلى الوظيفة مجموعة من عناصر المتجه س ، بالإضافة إلى وسيطة ثالثة في شكل دالة تحدد ترتيب الفرز.
وفيما يلي مثال على استخدام الأمراض المنقولة جنسيا:: فرز لفرز ناقلات س في ترتيب تنازلي:
# تشمل
# تشمل
# تشمل
المقارنة المنطقية (كثافة العمليات ألف ، كثافة العمليات باء) {
العودة أ > ب;
}
كثافة العمليات الرئيسية () {
الأمراض المنقولة جنسيا::ناقلات العاشر = {5, 2, 8, 1, 9};
الأمراض المنقولة جنسيا::نوع (س. تبدأ () ، س.نهاية () ، المقارنة);
ل (كونست السيارات والعنصر: س) {
الأمراض المنقولة جنسيا::كوت < < العنصر<<"";
}
العودة 0;
}
في هذا المثال ، تحدد وظيفة المقارنة ترتيب الفرز. إذا تم إرجاع صحيح ، تعتبر العناصر مرتبة بالترتيب الصحيح. إذا تم إرجاع كاذبة ، تعتبر العناصر التي يتم فرزها في ترتيب خاطئ.
- وظيفة الأمراض المنقولة جنسيا::سيستخدم الفرز وظيفة المقارنة لمقارنة عناصر المتجه وتحديد ترتيب الفرز. في هذه الحالة ، باستخدام عامل التشغيل " > " ، سيتم اعتبار العناصر مرتبة بترتيب تنازلي.
- ستكون نتيجة البرنامج على النحو التالي:
- 9 8 5 2 1
- وبالتالي ، يتم فرز المتجه س بنجاح بترتيب تنازلي باستخدام الوظائف المضمنة.
- فرز المتجه س بترتيب تنازلي باستخدام خوارزمية فرز الفقاعة
- يعد فرز الفقاعات أحد أبسط خوارزميات الفرز وأكثرها فعالية. يعتمد على مبدأ مقارنة العناصر المجاورة وتبادلها في مصفوفة حتى يتم فرز جميع العناصر بترتيب تصاعدي أو تنازلي.
- لفرز المتجه س بترتيب تنازلي باستخدام فرز الفقاعات ، اتبع الخطوات التالية:
- قم بتهيئة المتغير الذي تم فرزه بالقيمة خطأ للإشارة إلى أن المتجه لم يتم فرزه بعد.
- إنشاء حلقة في حين أن تشغيل حتى يتم فرزها غير صحيح.
تعيين فرزها إلى صحيح قبل كل تمريرة من خلال ناقلات.
انتقل من خلال جميع عناصر المتجه ، ومقارنة كل زوج من العناصر المجاورة.
إذا كان العنصر في الموضع الحالي أصغر من العنصر في الموضع التالي ، فقم بتبديله.
تم فرز المجموعة إلى خطأ للإشارة إلى أن المتجه لم يتم فرزه بالكامل بعد.
بعد المرور عبر جميع عناصر المتجه ، تحقق من قيمة الفرز.
إذا تم فرز المتجه بالكامل ، أوقف الحلقة.
إذا لم يتم فرز المتجه بالكامل بعد ، فتابع الفرز.
مثال على رمز بايثون لفرز المتجهات س بترتيب تنازلي باستخدام فرز الفقاعات:
ديف بابل_سورت (س):
ن = لين (خ)
مصنف = خطأ
بينما لا يتم فرزها:
مصنف = صحيح
لأني في النطاق (ن-1):
إذا س [أنا] < س [أنا + 1]:
- س [أنا] ، س [أنا + 1] = س [أنا + 1] ، س [أنا]
- مصنف = خطأ
- بعد تنفيذ وظيفة الفقاعات (س) ، سيتم فرز المتجه س بترتيب تنازلي.
على سبيل المثال ، بالنسبة للمتجه س = [5, 3, 9, 2, 1] ستكون النتيجة س = [9, 5, 3, 2, 1].
| فرز المتجهات س بترتيب تنازلي باستخدام خوارزمية فرز سريعة | فرز سريع هي واحدة من خوارزميات الفرز الأكثر كفاءة التي تسمح لك لفرز عناصر ناقلات س في ترتيب تنازلي. وهو يقوم على مبدأ "فرق تسد " ويستخدم استراتيجية" تقسيم الفرز". |
|---|---|
| تتكون هذه الخوارزمية من ثلاث خطوات رئيسية: | اختيار عنصر مرجعي. يمكن تحديد أي عنصر من عناصر المتجه س كعنصر مرجعي. |
| تقسيم المتجه إلى مجموعتين فرعيتين. ينقسم المتجه س إلى مجموعتين فرعيتين: عناصر أصغر من المرجع ، وعناصر أكبر من أو تساوي المرجع. تنتقل العناصر من مجموعة فرعية تحتوي على عناصر أقل من المرجع إلى يسار المرجع ، وتنتقل العناصر من مجموعة فرعية تحتوي على عناصر أكبر من أو تساوي المرجع إلى يمين المرجع. | الفرز العودي للمجموعات الفرعية. تستمر عملية التقسيم والتحرك لكل مجموعة فرعية حتى يتبقى عنصر واحد فقط في كل مجموعة فرعية. ثم يتم دمج المجموعات الفرعية في المتجه الأصلي س. |
| مثال على فرز المتجهات س بترتيب تنازلي باستخدام خوارزمية فرز سريعة: | خطوة |
| ناقلات العاشر | ناقل المصدر |
| [9, 3, 5, 2, 8, 1, 4] | اختيار عنصر مرجعي |
| [9, 3, 5, 2, 8, 1, 4] | تقسيم المتجه |
[2, 1, 3, 4, 8, 9, 5]
فرز المجموعات الفرعية
[2, 1, 3, 4, 8, 9, 5]
الفرز العودي
[9, 8, 5, 4, 3, 2, 1]
النتيجة النهائية
[9, 8, 5, 4, 3, 2, 1]
نتيجة لتطبيق خوارزمية الفرز السريع ، سيتم فرز المتجه س بترتيب تنازلي وسيبدو كما يلي [9, 8, 5, 4, 3, 2, 1].
يتيح لك استخدام خوارزمية الفرز السريع فرز كميات كبيرة من بيانات المتجهات بكفاءة وتقليل وقت الفرز مقارنة بالخوارزميات الأخرى.