shell脚本排序(冒泡排序)

#/bin/bash
a=(9 84 51 0 345 1 2 34 1 0) 
#自己定义一个数组
temp=
for((i=0;i<10;i++))
{
	for((j=i;j<10;j++))
		{
		  x=${a[$i]}
			if test $x -ge ${a[$j]}
				then
			  temp=${a[$i]}
				a[$i]=${a[$j]}
				a[$j]=$temp
			fi	
		}
}
for((k=0;k<10;k++))
{
	echo -n ${a[$k]} "  "
}
echo

上面以自定义固定数组进行排序,下面是用户自定义输入数组进行排序。

#/bin/bash

a=`expr $# + 1`
#expr是一个计算操作,$#是参数个数,$#+1是因为$0没有存储参数.
temp=
for((i=1;i<$a;i++))
{
	b[$i]=$1
	shift 1	
}
for((i=1;i<$a;i++))
{
	for((j=i;j<$a;j++))
		{
			x=${b[$i]}
			if test $x -ge ${b[$j]}
			then
				temp=${b[$i]}
				b[i]=${b[$j]}
				b[j]=$temp
				#相当与冒泡排序
			fi
		}
}
for((k=1;k<$a;k++))
{
	echo -n ${b[$k]} " "
	#不换行显示
}
echo
~$./a.out 7 6 56 4 3

 ~$3  4  6  7  56

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值