ฉันกำลังพยายามที่จะจัดเก็บคอลเลกชันที่เรียงอย่างชาญฉลาด ฉันมีชุดข้อมูลจำนวนชิ้น แต่ฉันรู้ว่านี้เหมาะกับข้อมูลลงในขนาดถังขยะไม่มีที่เปรียบ ฉันไม่รู้วิธีเลือกจุดสิ้นสุดอย่างชาญฉลาดเพื่อให้พอดีกับข้อมูล ตัวอย่างเช่น:
ว่าฉันมี 12 รายการในคอลเลกชันของฉันและฉันรู้ว่าข้อมูลจะพอดีกับ 3 ถังขยะ:
Index: 1 2 3 4 5 6 7 8 9 10 11 12
Value: 1 1 1 3 3 3 3 3 3 5 5 6
ฉันจะเลือกเบรกพอยต์อย่างชาญฉลาดสำหรับช่องเก็บของอย่างไร
การนำไปใช้ในปัจจุบันฉันได้แบ่งข้อมูลออกเป็นถังขยะที่มีขนาดเท่ากันแล้วใช้ค่าเฉลี่ยของจุดสิ้นสุดเพื่อค้นหาดัชนีสำหรับจุดสิ้นสุดของถังขยะ ดังนั้นจึงใช้งานได้เช่นนี้:
Index: 1 2 3 4 5 6 7 8 9 10 11 12
Value: 1 1 1 3 3 3 3 3 3 5 5 6
first break evenly: i = 1-4, 5-8, 9-12
mean endpoints: between 4 and 5: (3+3)/2 = 3
between 8 and 9: (3+3)/2 = 3
ตอนนี้อะไรก็ได้ที่ต่ำกว่า 3 พอดีใน bin 1 อะไรที่สูงกว่า 3 แต่ต่ำกว่า 3 พอดีใน bin 2 และอะไรที่สูงกว่า 3 พอดีใน bin 3 คุณสามารถเห็นว่าปัญหาของฉันคืออะไร หากข้อมูลมีช่องเก็บไม่เท่ากันวิธีการของฉันล้มเหลว
เพื่อนพูดถึงอัลกอริทึมเพื่อนบ้านที่ใกล้ที่สุด k- แต่ฉันไม่แน่ใจ