Saya mencoba untuk secara cerdas membuang koleksi yang diurutkan. Saya punya koleksi data. Tapi aku tahu bahwa data ini cocok dalam m merata berukuran sampah. Saya tidak tahu bagaimana memilih titik akhir secara cerdas agar sesuai dengan data. sebagai contoh:
Katakanlah saya memiliki 12 item dalam koleksi saya, dan saya tahu data akan masuk ke dalam 3 sampah:
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
Bagaimana saya secara cerdas memilih breakpoint saya untuk nampan dari ?
Implementasi saat ini saya telah memecah data menjadi nampan berukuran merata dan kemudian mengambil rata-rata titik akhir untuk menemukan indeks untuk akhir nampan. Jadi kerjanya seperti ini:
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
Jadi sekarang apa pun di bawah 3 cocok di nampan 1, apa pun di atas 3 tetapi di bawah 3 cocok di nampan 2, dan apa pun di atas 3 cocok di nampan 3. Anda dapat melihat apa masalah saya. Jika data memiliki tempat sampah yang tidak sama, metode saya gagal.
Seorang teman menyebutkan algoritma tetangga terdekat k-tapi saya tidak yakin.