选择排序
1.从未排序的数组中找出最大(最小)的数放在数组的起始位置
2.继续从剩余的数组中找出最大(最小)的数放在已经排序好的数组的末尾
3.继续完成未排序的数组中的其他数
shell脚本如下:
#! /bin/bash
#选择排序算法
array=(2 748 56 2 45)
for((i=0; i<${#array[@]}; i++))
do
min=$i
#找到最小的数对应的下标
for((j=$(($i+1)) ; j<${#array[@]}; j++))
do
if [ ${array[$min]} -gt ${array[$j]} ]; then
min=$j
fi
done
#交换找到的最小的数
tmp=${array[$i]}
array[$i]=${array[$min]}
array[$min]=$tmp
done
echo ${array[@]}