मैं एक साधारण काम प्रतीत होता हूं जो मुझे पागल कर रहा है। तो यदि आप एक प्रोग्रामिंग चुनौती पसंद करते हैं ... पढ़ें।बाइनरी चयन प्रक्रिया
मैं एक संख्या सीमा लेने में सक्षम होना चाहता हूं उदा। [1:20] और बाइनरी सीरैच एल्गोरिदम के समान तंत्र का उपयोग करके मान मुद्रित करें। तो, सबसे पहले सबसे कम मूल्य (इस मामले में 1) प्रिंट करें और फिर मध्य मान (उदाहरण के लिए इस मामले में 10) और फिर श्रेणी को क्वार्टर में विभाजित करें और मानों को 1/4 और 3/4 पर प्रिंट करें (इस मामले में, 5 और 15) और फिर आठवें में विभाजित करें और तब तक जब तक सीमा में सभी मूल्य मुद्रित नहीं किए जाते हैं।
इसका आवेदन (जो यहां समझने के लिए वास्तव में जरूरी नहीं है) एक मेमोरी पेज एक्सेस मैकेनिज्म के लिए है जो पहले मध्य श्रेणी में पृष्ठों तक पहुंचने पर अधिक कुशलतापूर्वक व्यवहार करता है।
इस समस्या के लिए, ऊपर वर्णित तरीके से किसी भी संख्या सीमा को लेने और मूल्यों को मुद्रित करने के लिए पर्याप्त होगा।
इस पर कोई विचार? एक psuedo कोड समाधान ठीक होगा। मैं इसका प्रयास दिखाऊंगा लेकिन अब तक जो कुछ भी मैंने कोशिश की है वह इसे काट नहीं देती है। धन्यवाद।
अद्यतन: अनुरोध के अनुसार, उदाहरण के लिए वांछित आउटपुट [1:20] ऐसा कुछ होगा: 1, 10, 5, 15, 3, 7, 12, 17, 2, 4, 6, 8, 11, 13, 16, 18, 9, 1 9, 20
यह आउटपुट उपयोग किए गए एल्गोरिदम के आधार पर कई समान तरीकों से प्रस्तुत किया जा सकता है। लेकिन, विचार पहले आधे मूल्यों को छोड़कर पहले आधे मूल्यों, फिर क्वार्टर, फिर आठवें, फिर 16 वीं, आदि प्रदर्शित करना है।
क्या आप नमूना मामले के लिए वांछित पूर्ण आउटपुट प्रदान कर सकते हैं? –
लेकिन आप केवल उन्हीं पृष्ठों का उपयोग कर सकते हैं जिन्हें आप आवंटित करते हैं, क्या मैं सही हूं? –
इसी तरह के प्रश्न का यह उत्तर सहायक हो सकता है: http://stackoverflow.com/a/11761192/1009831 –