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 (descending)
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 -nr)"
numbers+=(0)
readarray -t numbers
qsort "${numbers[@]}"
numbers=(${qsort_ret[@]} 0)
((last=numbers[0]+3))
numbers=("$last" "${numbers[@]}")
size=${#numbers[@]}