选择排序(Selection-sort)是一种简单直观的排序算法。它的工作原理:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。
本例是每次找到最小元素放到左侧。
#!/bin/bash
#Selection-sort
arr=(22 18 5 11 17 23 50 78 30 61)
arrtotal=${#arr[@]}
let lastone=arrtotal-1
echo ${arr[@]}
echo "--->>>"
i=0
while [ $i -lt $arrtotal ] ; do
tmpvalue=${arr[$i]}
tmpsite=$i
let tmpnext=i+1
for((j=$tmpnext;j<$arrtotal;j++)); do
if [ $tmpvalue -gt ${arr[$j]} ]; then
tmpvalue=${arr[$j]}
tmpsite=$j
fi
done
if [ $i -ne $tmpsite ];then
temp=${arr[$i]}
arr[$i]=${arr[$tmpsite]}
arr[$tmpsite]=$temp
fi
let i=i+1
done
echo ${arr[@]}
echo "END"