אפשרות א' - הפיכת המערך לערימת מינימום בינארית (O(n, הכנסת המינימום לעץ מאוזן כלשהו (O(1). ביצוע k איטרציות במהלכן אנו קוראים כל פעם ל-min על העץ ומכניסים את שני בניו מהערימה לתוך העץ. זה עולה לנו O(klog k). נשים לב כמובן כי העץ מסודר לפי ערכי המפתחות אשר מצביעים בין היתר לצמתים המתאימים בערימה.אפשרות ב' - קריאה ל-Select(k) שמחזירה את האיבר ה-kי במערך (O(n, סריקת המערך והכנסת כל האיברים הקטנים מהאיבר שהוחזר לתוך מערך חדש (O(n)). מיון המערך החדש בעזרת למשל mergeSort - זה עולה klog k.
סה"כ:
O(n + klog k)
