निम्नलिखित सेटिंग पर विचार करें:
- हम एक ढेर दिया जाता है जिसमें n आइटम नहीं है।
- हम अतिरिक्त स्टैक की निरंतर संख्या का उपयोग कर सकते हैं ।
- हम इन स्टाकों पर निम्नलिखित प्रचालनों को लागू कर सकते हैं:
- जाँच करें कि क्या कोई स्टैक खाली है,
- दो ढेर की शीर्ष वस्तुओं की तुलना करें,
- स्टैक में शीर्ष आइटम हटाएं,
- एक स्टैक में शीर्ष आइटम प्रिंट करें,
- एक स्टैक के शीर्ष आइटम को दूसरे स्टैक में कॉपी करें,
- एक स्टैक की सामग्री को दूसरे स्टैक पर कॉपी करें।
ध्यान दें कि ये केवल वे ही ऑपरेशन हैं जिनकी अनुमति है। हम आइटम स्वैप नहीं कर सकते हैं और हमें किसी भी आइटम को ढेर में से किसी भी आइटम को एक स्टैक में कॉपी करने के अपवाद के साथ पुश करने की अनुमति नहीं है (जिसके बाद लक्ष्य स्टैक की पिछली सामग्री को छोड़ दिया गया है और इसमें केवल कॉपी की गई सामग्री होगी) ।
यहाँ तुलना के साथ ढेर को सॉर्ट करने के लिए एक एल्गोरिथ्म है :
last := empty
for i from 1 to n
min := empty
w := s
while w is not empty
if w.top > last and w.top < min
min := w.top
delete w.top
print min
last := min
क्या हम बेहतर कर सकते हैं?
क्या कोई ऐसा प्रोग्राम है जो केवल तुलनाओं का उपयोग करके स्टैक में वस्तुओं की क्रमबद्ध सूची को प्रिंट करता है ?