by@hakatashi
AC
a=()
while read -n 1 c; do
a+=($c)
done
q(){
local k i s=() l=()
p=()
(($#==0)) && return 0
k=$1
shift
for i; do
if [[ $i < $k ]]; then
s+=( "$i" )
else
l+=( "$i" )
fi
done
q "${s[@]}"
s=( "${p[@]}" )
q "${l[@]}"
l=( "${p[@]}" )
p=( "${s[@]}" "$k" "${l[@]}" )
}
q "${a[@]}"
b=$(IFS=;echo "${p[*]}")
echo $b
6287953601770736677345463845350242041941624006183483468129869104705164710157662512209215190761220402
0000000000000111111111111122222222222233333334444444444445555555566666666666667777777777888888999999
/bin/bash: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)