ঘুমের বাছাই হ'ল একটি পূর্ণসংখ্যা বাছাই অ্যালগরিদম যা আমি ইন্টারনেটে পেয়েছি। এটি একটি আউটপুট প্রবাহ খুলবে এবং সমান্তরালে প্রতিটি ইনপুট সংখ্যার জন্য, সংখ্যা সেকেন্ডের জন্য বিলম্ব করে এবং সেই সংখ্যাটি আউটপুট দেয়। বিলম্বের কারণে, সর্বাধিক সংখ্যা সর্বশেষে আউটপুট হবে। আমি অনুমান করি এটিতে O (n + m) রয়েছে, যেখানে n উপাদানগুলির সংখ্যা এবং m সর্বাধিক সংখ্যা।
বাশের মূল কোডটি এখানে is
#!/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 টি সংখ্যা পরীক্ষা করা) হবে বলে আশা করা হচ্ছে যাতে বর্ণের পরিস্থিতি কখনই ঘটে না। এবং ধরে নিচ্ছি রেস শর্তগুলি কখনই ঘটে না।