①数组
数组定义方法
方法一:
数组名=(0 1 2 …)
方法二:
数组名=( [0]=value [1]=value [2]=value …)
方法三:
列表名=“0 1 2 …”
数组名=($列表名)
方法四:
数组名[0]=“a”
数组名[1]=“a”
数组名[2]=“a”
②获取数组长度
${#数组名[*]}
③读取数组值
读取整个数组的值:${数组名[*]}
获取数组中其中一个元素的值:${数组名[索引号]}
④数组切片
取数组中的某一段的元素的值
格式:
${数组名[@或*]}:起始位置(起始索引):长度
eg:echo ${arr1[*]:0:2} #这里是从0索引开始获得往后两位元素的值
echo ${arr1[*]:2:2} #获取从索引2开始往后获取两位元素的值
⑤数组替换
数组名=($数组名[@或*]/查找字符/替换字符}
eg:数组名=($数组名[*]/4/77)
⑥数组删除
删除整个数组:unset 数组名
删除指定元素:unset 数组名[索引号]
⑦增加数组元素
数组名+=(要添加的元素)直接往后增加
冒泡法
基本思想:
冒泡排序的基本思想是对比相邻的两个元素值
如果满足条件就交换元素值,把较小的元素移动到数组前面
把大的元素移动到数组后面(也就是交换两个元素的位置)
这样较小的元素就像气泡一样从底部上升到顶部
算法思路:
冒泡算法由双层循环实现,其中外部循环用于控制排序轮数
一般为要排序的数组长度减1次,因为最后一次循环只剩下一个数组元素,不需要对比
同时数组已经完成排序了。而内部循环主要用于对比数组中每个相邻元素的大小

直接选择法
与冒泡排序相比,直接选择排序的交换次数更少,所以速度会快些。
基本思想:
将指定排序位置与其它数组元素分别对比,
如果满足条件就交换元素值,注意这里区别冒泡排序,
不是交换相邻元素,而是把满足条件的元素与指定的排序位置交换
(如从最后一个元素开始排序) ,
这样排序好的位置逐渐扩大,最后整个数组都成为已排序好的格式。

反序:
以相反的顺序把原有数组的内容重新排序。
基本思想:
把数组最后一个元素与第一个元素替换,倒数第二个元素与第二个元素替换,以此类推,直到把所有数组元素反转替换。

文章介绍了数组的四种定义方法,包括获取数组长度、读取及切片操作、替换元素、删除元素以及增加元素的方法。还探讨了两种排序算法——冒泡排序和直接选择排序,冒泡排序通过相邻元素对比交换,选择排序则寻找最优位置进行交换,提高效率。最后提到了数组的反序操作,即元素的反转替换。
781

被折叠的 条评论
为什么被折叠?



