插入排序是先把左边的数当成已排序列,然后逐个按大小插入数字至全部排列好的排序方法,下面是我参考百度百科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