数组练习

1.输入若干个数值存入数组中,采用冒泡算法进行升序或降序排序
#!/bin/bash
declare -a number
for (( i=0; i<20; i++ ));do
  number[$i]=$RANDOM
done
echo "before sort:"
echo ${number[@]}

declare -i n=20
for (( i=0; i<n-1; i++ ));do
  for (( j=0; j<n-1-i; j++ ));do
    let next=$j+1
    if (( ${number[$j]} < ${number[$next]} ));then
      tmp=${number[$next]}
      number[$next]=${number[$j]}
      number[$j]=$tmp
    fi
  done
done
echo "after sort:"
echo ${number[*]}
echo "the max integer is ${number[0]},the min integer is ${number[$(( n-1 ))]}"
2.将下图所示,实现转置矩阵

在这里插入图片描述

#!/bin/bash
declare -i n=3
declare -A matrix
print(){
for (( i=0; i<n; i++ ));do
  for (( j=0; j<n; j++ ));do
    echo -e "${matrix[$i$j]}\t\c"
  done
  echo
done
}

for (( i=0; i<n; i++ ));do
  for (( j=0; j<n; j++ ));do
    matrix[$i$j]=$(( j+i*n+1 ))
  done
done
echo "the original matrix as below:"
print
for (( i=0; i<n; i++ ));do
  for (( j=0; j<n; j++ ));do
    if (( i<j ));then
      tmp=${matrix[$i$j]}
      matrix[$i$j]=${matrix[$j$i]}
      matrix[$j$i]=$tmp
    fi
  done
done
echo "the transformed matrix as below:"
print
unset n
unset matrix
unset i
unset j
unset print
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值