数组
定义:在集合当中指定多个元素,元素的类型"整数、字符串、可以是浮点"
作用:一次性的定义多个元素,可以为变量赋值提供遍历。
数组的定义方法:
数组名=(a b c)
数组名不能重复
方法一:
test1=(a b c d) echo ${test1[*]} echo ${test1[@]}
方法二:
test2[0]=1 test2[1]=2 test2[2]=3 echo ${test2[@]}
获取数组内部有几个元素
echo ${#test1[@]}
查看指定的元素
echo ${test3[3]}
【】里面的3就是元素的位置。默认从0开始
为变量赋值提供遍历
test4=(1 2 3 4 5) for num in ${test4[*]} do echo $num done
数组的切片
test4=(1 2 3 4 5) echo ${test4[*]:0:3} 1 2 3
0表示起始位置,2表示步长。起始位置0开始,包括0,移动2个。
数组的替换
临时替换
echo ${test4[*]/4/99} 1 2 3 99 5
下次打印还是原来的元素值
永久替换
test4[3]=99 echo ${test4[*]} 1 2 3 99 5
删除数组
unset test3
删除数组中的元素值
unset test4[3] echo ${test4[*]} 1 2 3 5
数组追加,追加元素
test4[3]=4 echo ${test4[*]} 1 2 3 4 5 test4[5]=6 echo ${test4[*]} 1 2 3 4 5 6
自动追加
test4+=(7 8) echo ${test4[*]} 1 2 3 4 5 6 7 8
求取数组中奇数和 和偶数和
冒泡排序:
类似于气泡上涌的工作,会将数组当中的元素按照从小到大,或者从大到小的顺序进行一个重新排列。
test=(20 10 60 40 50 30)
从小到大排列。
思路:对比两个相邻的元素,以从小到大为例。满足交换条件的元素,小的往左移,大的往右移动。
数组的位置发生变化(下表对应的元素的值发生变化)
0=20
1=10
0=10
1=20
双层循环,外部循环控制排序的轮次。内循环比较两个元素的大小,决定时候互换位置。
对比和交换的次数随着排序轮次而减少。
冒泡排序
把文件系统中已用的空间从大到小排序。