2
การค้นหาองค์ประกอบที่เล็กที่สุดของ k'th จากลำดับที่กำหนดไว้เฉพาะกับหน่วยความจำ O (k) เวลา O (n)
สมมติว่าเราอ่านลำดับของตัวเลขnnnทีละตัว วิธีค้นหาองค์ประกอบที่เล็กที่สุดของkkkเพียงแค่ใช้หน่วยความจำเซลล์O(k)O(k)O(k)และในเวลาเชิงเส้น ( O(n)O(n)O(n) ) ผมคิดว่าเราควรบันทึกแรกkkkแง่ของลำดับและเมื่อได้รับk+1k+1k+1 'ระยะ TH ลบคำซึ่งเราแน่ใจว่ามันไม่สามารถที่kkk ' องค์ประกอบที่เล็ก TH แล้วบันทึกk+1k+1k+1 'ระยะ TH ดังนั้นเราควรมีตัวบ่งชี้ที่แสดงคำที่ใช้ไม่ได้ในแต่ละขั้นตอนและตัวบ่งชี้นี้ควรได้รับการอัปเดตในแต่ละขั้นตอนอย่างรวดเร็ว ฉันเริ่มต้นด้วย"สูงสุด"; แต่มันไม่สามารถอัพเดทได้อย่างรวดเร็ว หมายความว่าหากเราพิจารณาค่าสูงสุดแล้วในการลบครั้งแรกเราพลาดค่าสูงสุดและเราควรค้นหาค่าสูงสุดในO(k)O(k)O(k)และสาเหตุ(n−k)×O(k)(n−k)×O(k)(n-k)\times O(k)เวลาที่ไม่เป็นเชิงเส้น บางทีเราควรบันทึกลำดับของkkkลำดับแรกอย่างชาญฉลาดยิ่งขึ้น ฉันจะแก้ปัญหานี้ได้อย่างไร