मैं समझदारी से बिन एक छांटे हुए संग्रह की कोशिश कर रहा हूं। मेरे पास डेटा के टुकड़ों का एक संग्रह है । लेकिन मुझे पता है कि यह डेटा मी असमान आकार के डिब्बे में फिट बैठता है। मुझे नहीं पता कि डेटा को ठीक से फिट करने के लिए समझदारी से कैसे एंडपॉइंट्स का चयन करना है। उदाहरण के लिए:
कहो कि मेरे संग्रह में 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
तो अब बिन 1 में 3 से नीचे कुछ भी फिट बैठता है, 3 से ऊपर कुछ भी, लेकिन 3 से नीचे बिन 2 में फिट बैठता है, और 3 में से कुछ भी बिन में फिट बैठता है। आप देख सकते हैं कि मेरी समस्या क्या है। यदि डेटा में असमान डिब्बे हैं तो मेरी विधि विफल हो जाती है।
एक मित्र ने k- निकटतम पड़ोसी एल्गोरिथ्म का उल्लेख किया, लेकिन मुझे यकीन नहीं है।