سؤال

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

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

المحلول

نظرًا لأن خوارزمية الترتيب الخاصة بـ reddit فاشلة، فمن المنطقي جدًا إلقاء نظرة عليها، إن لم يكن نسخها:


نظرًا للوقت الذي تم فيه نشر الإدخال A والوقت 7:46:43 صباحًا.8 ديسمبر 2005 ب لدينا رس كالفرق بينهما بالثواني:

رس = أ - ب

و x هو الفرق بين عدد الأصوات الأعلى U وعدد الأصوات السلبية D:

س = ش - د

أين

y = 1 if x > 0
y = 0 if x = 0
y = -1 if x < 0

و z كقيمة قصوى للقيمة المطلقة لـ x و1:

z = |x| if |x| >= 1
z = 1 if |x| < 1

لدينا التصنيف كدالة ƒ(tس, ، ذ، ض):

ƒ(رس, ، ذ ، ض) = سجل10 ض + (ص • رس)/45000


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