数组的应用
数组的概念
数组是一种数据结构,用于存储多个相同类型的元素。这些元素按照一定的顺序排列,并通过编号(下标)进行管理。数组在编程中非常常见,广泛应用于数据处理、算法实现等多个领域。数据就是定义了一系列,可以是整数,字符串,浮点数的变量值的集合
数组的作用
- 数组可以一次性定义多个变量,可以直接引用
- 高效的数据访问:数组通过索引直接访问元素,这使得数据的读取和写入都非常快速。
- 简化数据管理:数组将相同类型的数据存储在一起,这有助于简化数据管理。
- 支持随机访问:数组支持从任何位置开始访问元素,而不需要遍历整个数据结构
数组定义的方法
第一种
test1=(10 20 30 40)
echo ${test1[*]}
打印数组里面的值
第二种
test1=([0]=10 [1]=23 [2]=43)
数组的操作
获取数组的长度
echo ${#abc[*]}:获取数组的长度
对数组内部的值进行遍历
abc=(1 2 3 4 5)
for i in ${abc[*]}
do
echo $i
done
数组的切片
echo ${abc[*]:0:2}
0:表示起始位置
2:表示步长
数组的值进行替换
临时替换
临时替换:只是临时替换,数组本身内容没有变
永久替换
永久替换:直接改变数组本身的值
删除数组
删除数组分为:删除整个数组和删除数组中的值
删除整个数组
unset 数组名
删除数组中的值
unset 数组名[索引]
追加数组中的元素
第一种方法
abc[索引]=数值
第二种方法
推荐方法:abc+=(6 7)
数组传参
向函数内部的数组传参
test1 () {
abc=($(echo $@))
echo ${{abc[*]}}
}
abc1=(1 2 3 4 5)
test1 ${abc1[*]}
练习
从外部传一个数组进入函数内部,数组的值都是整数,然后把这些值累加求和
#!/bin/bash
test () {
abc=($(echo $@))
sum=0
for i in ${abc[*]}
do
sum=$(($sum+$i))
done
echo "$sun"
}
abc1=(1 2 3 4 5)
test ${abc1[*]}
从外部传一个数组进入函数内部,数组的值都是整数,把数组内每个值*2,然后打印出来新的数组
test () {
abc=($(echo $@))
for ((i=0,i<$#-1;i++))
do
abc[i]=$((${abc[i]*2}))
done
echo ${abc[*]}
}
abc1=(1 2 3 4 5)
test ${abc1[*]}
冒泡排序
冒泡排序:把数组内的元素(整数),按照从小到大,或者从大到小的顺序排列
#!/bin/bash
abc=(40 50 31 5 10 98)
l=${#abc[*]}
for ((i=1;i<$l;i++))
do
for ((k=0;k<$l-i;k++))
do
first=${abc[k]}
j=$(($k+1))
sceond=${abc[j]}
if [ $first -lt $sceond ]
then
temp=$first
abc[$k]=$sceond
abc[$j]=$temp
fi
done
done