سؤال

كنت أبحث في خوارزمية "timsort" لإجراء بعض الفرز على مجموعات البيانات الكبيرة إلى حد ما:http://timsort4net.codeplex.com/

عادة ما أستخدم Array.Sort(Keys, Items) حيث العناصر عبارة عن مصفوفة أعداد صحيحة تعمل كوسيلة لتحديد تغييرات الموضع التي حدثت أثناء الفرز.

هل هناك أي طريقة لتحقيق هذه النتيجة نفسها دون الحاجة إلى تعديل تنفيذ خوارزمية الفرز بشكل كبير؟

هل كانت مفيدة؟

المحلول

يمكنك استخدام طريقة التمديد محددة على Ilist

public static void TimSort<T>(this IList<T> array, Comparison<T> comparer, bool buffered = true)

لفرز قائمة المؤشرات، وتمرير مقارنة تشير إلى الكائنات الحقيقية في ضوء المؤشرات، ومقارنتها وإرجاع قيم سلبية أو موجبة أو صفرية.

أتمنى أن يساعدك هذا!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top