目录
冒泡排序?
菜单
冒泡排序?
???????冒泡排序,顾名思义,就是将元素冒泡出来,进行大小的对比,然后进行排序。冒泡排序算法的思想是在一个循环中将两个元素为一组单独拿出来,然后进行大小对比,按照程序员的目进行排序的方式进行排序,每次只拿出两个元素为一组进行排序,大小对比后进行如果满足条件则进行下一组排序,反之则是将两个元素互换后进行下一组排序,每次的最后一次排序的结果即是这列数字的最大或最小值,为了节省排序的时间,下一次排序时就不对上一次排序的最后一个元素进行排序,因为上一次排序的最后一个元素即是符合条件的元素,没有必要进行排序,提升了排提升了排序的效率。
#!/bin/bash
scort=(1 3 9 10 78 38 47 50 99)
for ((i=1;i<${#scort[*]};i++))
do
for ((j=0;j<${#scort[*]}-i;j++))
do
if [ ${scort[$j]} -gt ${scort[$j+1]} ]
then
tmp=${scort[$j+1]}
scort[$j+1]=${scort[$j]}
scort[$j]=$tmp
fi
done
done
echo ${scort[*]}
运行
[root@xiaobin /data]# bash mp.sh
1 3 9 10 38 47 50 78 99
菜单
实现点餐的功能
select menu in
#!/bin/bash
PS3="请选择你要点餐的序号(1-6号)"
menu="
鱼香肉丝:20元
锅包肉:30元
佛跳墙:88元
酸菜鱼:58元
烤鱼:78元
退出
"
select menu in $menu
do
case $REPLY in
1)
let sum+=20
echo "您点了$menu"
;;
2)
echo "你点了,$menu"
let sum+=30
;;
3)
echo "你点了$menu"
let sum+=88
;;
4)
echo "你点了$menu"
let sum+=58
;;
5)
echo "你点了$menu"
let sum+=78
;;
6)
echo "退出,谢谢的本次点单"
break
;;
*)
echo "没有其他的菜,请选择(1-6)"
esac
done
实现效果
?
|