当前位置: 技术问答>linux和unix
shell编程中的冒泡排序问题
来源: 互联网 发布时间:2016-02-05
本文导语: 我是shell编程的新手 刚刚编写了一个冒泡排序的问题 可是老是陷入死循环中 希望高手帮我看看问题出在哪儿 代码: #!/bin/sh #shi xian mao pao paixu set -A name 13 1 8 4 19 28 2 7 14 11 echo "pai lei qian de shu zu:${name[...
我是shell编程的新手
刚刚编写了一个冒泡排序的问题
可是老是陷入死循环中
希望高手帮我看看问题出在哪儿
代码:
#!/bin/sh
#shi xian mao pao paixu
set -A name 13 1 8 4 19 28 2 7 14 11
echo "pai lei qian de shu zu:${name[*]}"
a=${#name[@]}
i=$(($a-1))
chang=True
echo " i ok"
while [ $i>0 -o $chang=True ]
do
echo "while1 ok"
chang=False
j=0
while [ $j -lt $i ]
do
echo "while2 ok"
if [ ${name[$j]} -gt ${name[$j+1]} ];then
huan=${name[$j]}
name[$j]=${name[$j+1]}
name[$j+1]=$huan
chang=True
fi
j=$(($j+1))
done
i=$(($i-1))
done
echo "pai xu hou de shu zu:"
echo "${name[*]}"
运行结果:
全是while1 ok
刚刚编写了一个冒泡排序的问题
可是老是陷入死循环中
希望高手帮我看看问题出在哪儿
代码:
#!/bin/sh
#shi xian mao pao paixu
set -A name 13 1 8 4 19 28 2 7 14 11
echo "pai lei qian de shu zu:${name[*]}"
a=${#name[@]}
i=$(($a-1))
chang=True
echo " i ok"
while [ $i>0 -o $chang=True ]
do
echo "while1 ok"
chang=False
j=0
while [ $j -lt $i ]
do
echo "while2 ok"
if [ ${name[$j]} -gt ${name[$j+1]} ];then
huan=${name[$j]}
name[$j]=${name[$j+1]}
name[$j+1]=$huan
chang=True
fi
j=$(($j+1))
done
i=$(($i-1))
done
echo "pai xu hou de shu zu:"
echo "${name[*]}"
运行结果:
全是while1 ok
|
sh -x filename.sh 跟踪进去看看