shell冒泡排序

来源:百度知道 编辑:UC知道 时间:2024/05/30 22:13:52
课后的习题,就是在LINUX系统下编写一个shell程序。
从键盘上输入一串数,保存在一个自己定义的数组中,然后利用冒泡排序将这一串数进行排序。

#!/bin/bash

#a是保存的数字的数组

echo "请输入待排序的数字,并以ctrl-d结束,示例: <1 2 3 4 回车 ctrl-D>"
while read line
do
a=(${a} ${line})
done

last=$(( ${#a[@]} - 1 ))

while [ "$last" -gt 0 ]
do
first=0
max_inode=$first
max=${a[$first]}
while [ "$first" -le "$last" ]
do
if [ "${a[$first]}" -gt "$max" ]
then
max=${a[$first]}
max_inode=$first
fi
first=$(( $first + 1 ))
done
swap=${a[$last]}
a[$last]=$max
a[$max_inode]=$swap
last=$(( $last - 1 ))
done

for i in ${a[*]}
do
echo $i
done

临时编写,经过简单的测试。。可能会有不完善的地方,请自行修改。。。尤其是“数字输入”那里需要注意。。