خوارزمية فرز

في المعلوماتية أو الرياضيات، خوارزمية الفرز[1] (بالإنجليزية: Sort Algorithm) هي خوارزمية تمكن من تنظيم مجموعة عناصر حسب ترتيب محدد. العناصر المراد ترتيبها توجد في مجموعة مزودة بعلاقة ترتيب.
التصنيفات
[عدل]تصنيف خوارزميات الفرز مهم جدا، لأنه يمكن من اختيار نوع الخوارزمية الأكثر تناسبا للمشكل المعالج، مع الأخذ بعين الاعتبار السلبيات الموجودة في الخوارزمية.
تعقيد الخوارزمية
[عدل]- تعقيد الخوارزمية الزمني في الحالات الأكثر تعقيدا يمكن من تحديد الحد الأقصى لعدد العمليات التي يجب استعمالها لترتيب عناصر مجموعة مكونة من n عنصر. نستعمل لترميز هذا التعقيد لاندو: O.[2][3][4]
- تعقيد الخوارزمية الزمني في الحالة المتوسطة تمكن من مقارنة خوارزميات الفرز وإعطاء فكرة عن الوقت اللازم لتنفيذ الخوارزمية.
- تعقيد الخوارزمية المكاني قي الحالات الأكثر تعقيدا أو الحالات المتوسطة تمثل كمية الذاكرة المستعملة في خوارزمية الفرز. وهي أيضا مرتبطة بعدد عناصر المجموعة.
في معظم الحالات ، وبالنسبة للبعض .
الفرز ذو التعقيد في المتوسط يعد جيدًا.
مميزات المكان
[عدل]نقول أن خوارزمية مكانية إذا لم تستعمل سوى عدد محدد من المتغيرات وتُغير مباشرة المجموعة المراد ترتيبها. هذا يتطلب استعمال بنية للمعطيات مثلا جدول.
مميز الثبات
[عدل]تكون الخوارزمية ثابتة إذا كان يحافظ على الفرز النسبي للكميات المتساوية بالنسبة لعلاقة الفرز.
مثال، بالنسبة للعناصر الآتية:
(4, 1) (3, 1) (3, 7) (5, 6)
الذي نرتبها حسب الاحداثية الأولى (المفتاح) نجد حالتين، عندما يتم احترام الفرز النسبي وعندما لا يحترم:
(3, 1) (3, 7) (4, 1) (5, 6) (ترتيب نسبي محترم) (3, 7) (3, 1) (4, 1) (5, 6) (ترتيب نسبي متغير)
أمثلة وتقنيات الفرز
[عدل]- ترتيب الفقاعات: خوارزمية رباعية,
- ترتيب الاختيار: خوارزمية رباعية,
- ترتيب بالإدراج: خوارزمية رباعية,
- ترتيب سريع: في الحالات المتوسطة، لكن رباعي في الحالات الصعبة.
مراجع
[عدل]- ^ معجم مصطلحات المعلوماتية (بالعربية والإنجليزية)، دمشق: الجمعية العلمية السورية للمعلوماتية، 2000، ص. 499، OCLC:47938198، QID:Q108408025
- ^ Nilsson، Stefan (2000). "The Fastest Sorting Algorithm?". Dr Dobbs. مؤرشف من الأصل في 2019-06-08.
- ^ Tim Peters's original description of timsort نسخة محفوظة 22 يناير 2018 على موقع واي باك مشين.
- ^ Lohr، Steve (17 ديسمبر 2001). "Frances E. Holberton, 84, Early Computer Programmer". NYTimes. مؤرشف من الأصل في 2018-01-18. اطلع عليه بتاريخ 2014-12-16.