आप प्रदर्शन के लिए बड़े मानों का उपयोग कर सकते हैं, जैसे कहें:
apple : 1 000 000
orange : 2 000 000
banana : 3 000 000
अब अगर मैं potato
जोड़ना चाहता हूं स्थिति 2 (n=2) में मैं n (=> 2:नारंगी) और (n-1) (=> 1:सेब) की स्थिति लेता हूं और आलू की नई स्थिति प्राप्त करने के लिए उन्हें 2 से विभाजित करता हूं:
(1 000 000 + 2 000 000) / 2
=1 500 000
apple : 1 000 000
**potato : 1 500 000**
orange : 2 000 000
banana : 3 000 000
यह काफी लंबे समय तक काम करेगा, और अगर किसी बिंदु पर आपको लगता है कि आपने इस स्कीमा को समाप्त कर दिया है, तो भी आप सभी मानों को 1000 से गुणा कर सकते हैं।
आप निम्न मान (1, 2, 3, ...) का उपयोग करना जारी रख सकते हैं और उनके प्रकार को DOUBLE
के रूप में परिभाषित कर सकते हैं , इसलिए 2 से विभाजित करते समय वे कभी नहीं टकराएंगे।
संपादित करें: केले को 1 स्थान पर रखने के बारे में :
सूत्र का उपयोग करना (n+(n-1))/2:
यहाँ n =1 (नई स्थिति)।
हमारा डेटा है:
apple : 1 000 000
potato : 1 500 000
orange : 2 000 000
banana : 3 000 000
(1 000000+(0))/2
=500 000
मैं केले के लिए 500,000 ऑर्डर देता हूं:
**banana : 500 000**
apple : 1 000 000
potato : 1 500 000
orange : 2 000 000
एक और समाधान:एक टेक्स्ट फ़ील्ड बनाएं जो एक इंडेक्सर हो और जिसमें सभी आईडी हों।
"1,2,3,4,5,6,7"
अब अगर मैं तत्व आईडी 8 को 3 और 4 के बीच रखना चाहता हूं, तो मुझे बस ",4," को ",8,4," से बदलना होगा।
हालांकि यह इंडेक्स n पर तत्व खोजने के लिए कंप्यूटिंग के मामले में अधिक जटिल है, इसलिए मैं व्यक्तिगत रूप से पहले समाधान का उपयोग करूंगा।