shell----------冒泡算法

冒泡排序

类似于气泡上涌的过程,可以把数据从数组中,上下进行移动,实现从大到小或从小到大的排序。

思路
这个排序主要是把相邻的两个数进行比较,按要求进行上下移动,如果要求是升序,那么就会从第一个数与第二个数进行比对大小,第一个数值大就会下移与第三数比对,依次类推与下面数值进行大小比对,进行判断是否需要改变位置;降序就是与其相反。

运算过程图解:
在这里插入图片描述
实现代码:

#!/bin/bash
f=`cat /root/arr.txt`    					##把arr.txt文件里的数值赋给f
array=($f)
a=${#array[*]}
for ((i=1; i<$a; i++ ))					###比较轮数为数组长度减1
do
	for ((j=0; j<$a-i; j++))
        do
                if [ ${array[$j]} -gt ${array[$[$j+1]]} ];then  		###第一个数比第二个数大就进行互换
                   temp=${array[$j]}					##把第一个数赋值给temp(临时变量)
                   array[$j]=${array[$[$j+1]]}			###把第二个数赋值给第一个数
                   array[$[$j+1]]=$temp				###把temp(临时变量)赋值给第二个数
        fi
        done
done
echo ${array[*]}

注释:

${#array[*]}					##获取当前数组位数
${array[$j]}					##第一个元素
${array[$[$j+1]]}				##第二个元素
temp							##临时变量(第1个元素的原值)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值