В связи с бессонницей несколько ночей подряд хочу поделиться алгоритмом спящей сортировки. Реализация возможна на разных технологиях. Вот на bash'е:

#!/bin/bash
function f() {
    sleep "$1"
    echo "$1"
}
while [ -n "$1" ]
do
    f "$1" &
    shift
done
wait

Как видите идея очень простая, на входе получаете массив и для каждого элемента создаете отдельный процесс который спит столько секунд сколько текущий элемент. Пример использования:

./sleepsort.sh 7 4 6 2 3 1 5

Этот вариант без хвостовой рекурсии, так что можете предложить свои варианты в комментариях.



blog comments powered by Disqus

Support

If you like my posts, please support me on Gittip

Published

30 November 2012

In tags we trust

Fork me on GitHub