كيفية استخدام وظيفة stabil_sort () في لغة ++ C

Kyfyt Astkhdam Wzyft Stabil Sort Fy Lght C



هناك وظائف مختلفة في C ++ لفرز عناصر التسلسل بترتيب معين. على غرار وظيفة الفرز ، يتم استخدام الترتيب المستقر لفرز العناصر في النطاق (الأول والأخير). الفرق الرئيسي بينهما هو أن مستقر_فرز يحافظ على الترتيب النسبي للعناصر بقيم متساوية.

في هذا البرنامج التعليمي التفاصيل ، سنعرض عمل ملف Stable_sort () في C ++.

كيفية استخدام وظيفة stabil_sort () في لغة ++ C

في C ++ ، فإن ملف Stable_sort () هي خوارزمية مكتبة قياسية ترتب العناصر بترتيب متزايد وتحافظ على نفس الترتيب للعناصر المكافئة. هذا يعني أنه في حالة تساوي عنصرين ، فإن العنصر الذي يظهر أولاً في الحاوية قبل الفرز سيظل يظهر أولاً في القائمة المرتبة. تعمل هذه الوظيفة عن طريق تقسيم الحاوية بشكل متكرر (المصفوفات والمتجهات والقوائم المرتبطة) وفرزها بشكل منفصل ثم دمجها للحصول على الحاوية المرتبة. يأتي تحت <الخوارزمية> الملف الاساسي.







الصيغة العامة لاستخدام Stable_sort () في C ++ هو:



مستقر_فرز ( RandomAccessIterator أولاً و RandomAccessIterator الماضي ) ؛

هنا ، أولاً هو المكرر الذي يشير إلى العنصر الأول في النطاق المراد فرزه ، و آخر هو المكرر الذي يشير إلى العنصر بعد العنصر الأخير في النطاق المراد ترتيبه.



ال Stable_sort () تستخدم الدالة ترتيبًا غير تنازلي لفرز المدخلات في النطاق [الأول ، الأخير] ، أي من الأصغر إلى الأكبر. تقارن الوظيفة افتراضيًا العناصر من خلال ملف أقل من عامل التشغيل (<).





مثال 1

ضع في اعتبارك رمز المثال أدناه ، في هذا الرمز ، قمنا بإنشاء ملف قائمة المتجهات وتهيئته ببعض القيم. بعد ذلك ، استخدمنا ملف Stable_sort () لفرز قيم المتجه المحدد بترتيب تصاعدي. تتم طباعة المتجهات غير المصنفة والمفرزة على وحدة التحكم باستخدام الحلقة المستندة إلى النطاق.

# تضمين

# تضمين <ناقل>

# تضمين <الخوارزمية>

استخدام اسم للمحطة ؛



int رئيسي ( )

{

المتجه < int > قائمة = { 5 و 2 و 25 و 4 و 9 و 33 و 38 و 26 } ؛

كوت << 'الأرقام قبل الفرز:' ؛

لكل واحد ( قائمة. يبدأ ( ) و قائمة. نهاية ( ) و [ ] ( int x ) {

كوت << x << '' ؛

} ) ؛

مستقر_فرز ( قائمة. يبدأ ( ) و قائمة. نهاية ( ) ) ؛

كوت << ' الأرقام بعد الفرز: ' ؛

لكل واحد ( قائمة. يبدأ ( ) و قائمة. نهاية ( ) و [ ] ( int x ) {

كوت << x << '' ؛

} ) ؛



يعود 0 ؛

}




مثال 2

في المثال الموضح أدناه ، قمنا بإنشاء مصفوفة عدد صحيح وتهيئتها ببعض القيم. ثم بشكل افتراضي ، ملف Stable_sort () يرتب العناصر بترتيب تصاعدي:

# تضمين

# تضمين <الخوارزمية>

استخدام اسم للمحطة ؛

int رئيسي ( )

{

int مجموعة مصفوفة [ ] = { 12 و 7 و 7 و 1 و 8 و 7 و 3 و 4 و 22 و 0 } ؛

int ن = حجم ( مجموعة مصفوفة ) / حجم ( مجموعة مصفوفة [ 0 ] ) ؛

كوت << 'المصفوفة الأصلية هي: ' ؛

ل ( int أنا = 0 ؛ أنا < ن ؛ ++ أنا ) {

كوت << مجموعة مصفوفة [ أنا ] << '' ؛

}

مستقر_فرز ( مجموعة مصفوفة و مجموعة مصفوفة + ن ) ؛

كوت << ' المصفوفة بعد الفرز هي: ' ؛

ل ( int أنا = 0 ؛ أنا < ن ؛ ++ أنا ) {

كوت << مجموعة مصفوفة [ أنا ] << '' ؛

}

يعود 0 ؛

}

مثال 3

ال مستقر_فرز يأخذ المعلمة الثالثة لتحديد ترتيب فرز العنصر. في المثال أدناه ، استخدمنا ملف أكبر() تعمل مع Stable_sort () لفرز عناصر المصفوفة بترتيب تنازلي

# تضمين

# تضمين <الخوارزمية>

استخدام اسم للمحطة ؛

int رئيسي ( )

{

int مجموعة مصفوفة [ ] = { 12 و 7 و 7 و 1 و 8 و 7 و 3 و 4 و 22 و 0 } ؛

int ن = حجم ( مجموعة مصفوفة ) / حجم ( مجموعة مصفوفة [ 0 ] ) ؛

كوت << 'المصفوفة الأصلية: ' ؛

ل ( int أنا = 0 ؛ أنا < ن ؛ ++ أنا ) {

كوت << مجموعة مصفوفة [ أنا ] << '' ؛

}

مستقر_فرز ( مجموعة مصفوفة و مجموعة مصفوفة + ن و أكبر < int > ( ) ) ؛

كوت << ' صفيف بعد الفرز: ' ؛

ل ( int أنا = 0 ؛ أنا < ن ؛ ++ أنا ) {

كوت << مجموعة مصفوفة [ أنا ] << '' ؛

}

يعود 0 ؛

}

الحد الأدنى

ال Stable_sort () الوظيفة في C ++ هي خوارزمية مكتبة قياسية تُستخدم لفرز العناصر في حاوية بترتيب غير تنازلي مع الحفاظ على الترتيب النسبي للعناصر في حاوية بنفس القيم. يمكن استخدامه مع حاويات مختلفة مثل المصفوفات والمتجهات والقوائم المرتبطة. بالإضافة إلى ذلك ، يتطلب الأمر معلمة ثالثة لتحديد ترتيب فرز العناصر.