linux shell实现冒泡算法
#设置数组values
values=(3953612932304182212825)
#获取values的个数
numvalues=${#values[@]}
#显示当前数组的值,用于跟踪
functionshowvalues
{
for((k=0;k<numvalues;k++));do
echo-ne"${values[$k]}"
done
echo
}
#冒泡算法:将被排序的记录数组R[1..n]垂直排列,每个记录R看作是重量为R.key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。
functionbubble
{
for((i=0;i<numvalues;i++));do
ischanged=false
for((j=numvalues-1;j>i;j--));do
#如果轻的在下交换之,每次i的循环,都可以见最轻的放置在最上,并调整其他的位置,使之更为有序
if[${values[j]}-lt${values[j-1]}];then
temp=${values[j]}
values[j]=${values[j-1]}
values[j-1]=$temp
ischanged=true
fi
done
showvalues
#如果已经不需要调整,即有序,就跳出循环。
if[ischanged="false"];then
break;
fi
done
}
相关推荐
wonner 2020-06-03
清溪算法 2019-12-24
ZhuZhuWonder 2019-07-01
tuonioooo 2016-10-20
dushine00 2019-06-28
代码之神 2019-06-27
YUAN 2019-04-29
humothetrader 2018-01-15
danwenxuan 2014-08-31
CallmeZhe 2010-05-22
tulensa 2006-11-20
xiekch 2019-02-21