插入排序是先把左邊的數當成已排序列,然後逐個按大小插入數字至全部排列好的排序方法,下面是我參考百度百科C語言版改寫的bash腳本。
#插入排序
declare -i i
declare -i j
read -p "enter num: " -a num
i=1
while [ $i -lt ${#num[@]} ]
do
tm=${num[$i]}
j=$i-1
while [ $j -ge 0 ] && [ ${num[$j]} -gt $tm ]
do
num[$j+1]=${num[$j]}
j=$j-1
done
[ j != $i-1 ] && num[$j+1]=$tm
echo " ${num[@]}"
i=$i+1
done
ubuntu15.04終端測試結果
5 4 3 2 1
4 5 3 2 1
3 4 5 2 1
2 3 4 5 1
1 2 3 4 5