Sleepsort

Из «Хабра» узнал про алгоритм sleepsort. Он больше забавный, чем практичный, я переписал его на баш:

while [ -n "$1" ]; do
    ( sleep "${1/%[0-9]/}.${1:(-1)}" ; echo "$1" ) &
    shift
done
wait
echo

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

$ bash sleepsort 1 2 7 10 3

1
2
3
7
10

Комментарии 4

Александр Карпинский № 1
Только не «по числу сортируемых параметров», а по числу сортируемых значений. Как-то это запутало сперва.