मैं एक एलेवेटर का अनुकरण करने की कोशिश कर रहा हूं, हमेशा की तरह मैंने एक समय में केवल एक ही ऑर्डर लेकर बहुत सरल शुरुआत की, फिर एलेवेटर में कतार के रूप में मेमोरी को जोड़ा ताकि फर्श को उस क्रम में यात्रा की जाए जिसमें वे दबाए गए थे, जो स्पष्ट रूप से सबसे अच्छा तरीका नहीं है।
इसलिए इस समय मैं एक बहुत ही सरल और "शॉर्ट विज़र्ड" तर्क का उपयोग कर रहा हूं, जो कि वर्तमान मंजिल के लिए मेरे लिए सबसे नज़दीकी मंजिल को ढूंढता है और इसे मेरी अगली मंजिल के रूप में सेट करता है और जब तक कोई और मंजिल सूची में न हो।
लेकिन यह हमेशा काम नहीं करता है, उदाहरण के लिए एलेवेटर एक 5 मंज़िला इमारत की तीसरी मंज़िल में था और उसे ऑर्डर मिला 4,5,2 सबसे छोटा रास्ता 2-> 4-> 5 होगा जिसकी लागत 4 मंज़िल होगी लेकिन इस लॉजिक का उपयोग करना 4-> 5-> 2 जिसकी कीमत 5 है, को कोड के आधार पर उठाया जाने की समान संभावना है।
मैं सबसे छोटा रास्ता कैसे ढूंढूं और लिफ्ट को अधिक कुशल बनाऊं?