Shell冒泡排序
通过对数据循环排序,得出数值大小,进行排序。
脚本
确定数组排序
#!/bin/bash
# 冒泡排序
score=(10 5 1 100 70 60)
for ((i=1;i<${#score[*]};i++))
do
for ((j=0;j<${#score[*]}-$i;j++))
do
if [ ${score[j]} -gt ${score[$(($j+1))]} ]
then temp=${score[j]} 中间变量
score[j]=${score[$(($j+1))]}
score[$(($j+1))]=$temp
fi
done
done
echo ${score[*]}
此处[$(($j+1))]可以替换为[j+1]
键盘输入数组排序
#!/bin/bash
# 键盘输入冒泡排序
k=0 数组第一位元素
while true 一直继续,循环
do
read -p "是否需要输入数值?" do 变量名
if [ $do == "no" ] 只要不输入no就一直继续
then break 退出循环
fi
read -p "请输入第$(($k+1))个元素" key
score[$k]=$key
let k++
done
for ((i=1;i<${#score[*]};i++))
do
for ((j=0;j<${#score[*]}-$i;j++))
do
if [ ${score[j]} -gt ${score[j+1]} ]
then temp=${score[j]}
score[j]=${score[j+1]}
score[j+1]=$temp
fi
done
done
echo ${score[*]}