remove faulty use of sort command (implement qsort in pure bash)

This commit is contained in:
2021-07-30 20:07:45 +02:00
parent 92cc3e90c4
commit 5b0a1d7b53
3 changed files with 53 additions and 11 deletions

View File

@@ -5,9 +5,31 @@
CMD=${0##*/}
shopt -s extglob
# quicksort implementation (ascending)
qsort() {
local pivot i smaller=() larger=()
qsort_ret=()
(($#==0)) && return 0
pivot=$1
shift
for i; do
if (( i < pivot )); then
smaller+=( "$i" )
else
larger+=( "$i" )
fi
done
qsort "${smaller[@]}"
smaller=( "${qsort_ret[@]}" )
qsort "${larger[@]}"
larger=( "${qsort_ret[@]}" )
qsort_ret=( "${smaller[@]}" "$pivot" "${larger[@]}" )
}
declare -a numbers
readarray -t numbers <<< "$(sort -n)"
numbers=(0 "${numbers[@]}")
readarray -t numbers
qsort "${numbers[@]}"
numbers=(0 ${qsort_ret[@]})
size=${#numbers[@]}
((last=${numbers[size-1]}+3))
numbers+=("$last")