स्लीप सॉर्ट एक पूर्णांक छँटाई एल्गोरिथ्म है जो मैंने इंटरनेट पर पाया। यह एक आउटपुट स्ट्रीम खोलता है, और समानांतर में प्रत्येक इनपुट नंबर के लिए, संख्या सेकंड के लिए देरी और उस नंबर को आउटपुट करता है। देरी के कारण, उच्चतम संख्या अंतिम रूप से आउटपुट की जाएगी। मेरा अनुमान है कि इसमें O (n + m) है, जहाँ n तत्वों की संख्या है और m उच्चतम संख्या है।
यहाँ बैश में मूल कोड है
#!/bin/bash
function f() {
sleep "$1"
echo "$1"
}
while [ -n "$1" ]
do
f "$1" &
shift
done
wait
यहाँ छद्मकोश है
sleepsort(xs)
output = []
fork
for parallel x in xs:
sleep for x seconds
append x to output
wait until length(output) == length(xs)
return output
आपका काम अपनी पसंद की प्रोग्रामिंग भाषा में एक समारोह के रूप में स्लीप सॉर्ट को लागू करना है। आप किसी भी संगामिति कारकों जैसे कि दौड़ की स्थिति की उपेक्षा कर सकते हैं और कभी भी किसी साझा संसाधनों को लॉक नहीं कर सकते। सबसे छोटा कोड जीतता है। फ़ंक्शन की परिभाषा कोड लंबाई की ओर गिना जाता है।
इनपुट सूची केवल गैर-नकारात्मक पूर्णांकों तक सीमित है, और इनपुट सूची की लंबाई यथोचित लंबे (कम से कम 10 नंबर का परीक्षण) की उम्मीद है, इसलिए दौड़ की स्थिति कभी भी नहीं होती है। और यह मानते हुए कि दौड़ की स्थिति कभी नहीं होगी।