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

عندما يمكننا الحصول على متتالية مرتبة بالكامل، وهو ما يكافئ خوارزمية «ترتيب الاختيار».
الطريقة 2: الترتيب
كما يوضح الشكل أدناه، يمكننا أولاً ترتيب المصفوفة nums، ثم إعادة العناصر الواقعة في أقصى اليمين، بتعقيد زمني .
من الواضح أن هذه الطريقة تبذل جهداً أكبر من اللازم، لأننا نحتاج فقط إلى إيجاد أكبر عنصر بدلاً من ترتيب العناصر الأخرى.

الطريقة 3: الكومة
يمكننا حل مسألة أعلى k بكفاءة أكبر باستخدام كومة، كما يوضح الشكل أدناه.
- نهيّئ كومة صغرى، حيث يكون العنصر الأعلى في الكومة هو الأصغر.
- ندرج أولاً العناصر الأولى من المصفوفة في الكومة بالتتابع.
- بدءاً من العنصر ، إذا كان العنصر الحالي أكبر من العنصر الأعلى في الكومة، نحذف العنصر الأعلى من الكومة وندرج العنصر الحالي فيها.
- بعد اكتمال الاجتياز، تحتوي الكومة على أكبر عنصر.
وتكون شيفرة المثال كما يلي:
يُجري ما مجموعه جولة من الإدراج والحذف في الكومة، ويكون الحد الأقصى لطول الكومة ، لذا يكون التعقيد الزمني . وهذه الطريقة عالية الكفاءة؛ فعندما يكون صغيراً يقترب التعقيد الزمني من ، وعندما يكون كبيراً لا يتجاوز التعقيد الزمني .
وإضافة إلى ذلك، تلائم هذه الطريقة تدفّقات البيانات الديناميكية. فمع وصول بيانات جديدة، يمكننا مواصلة صيانة العناصر في الكومة، بما يتيح التحديث الديناميكي لأكبر عنصر.