首页 > 编程语言 > 详细

shell数组

时间:2021-07-21 17:10:05      阅读:28      评论:0      收藏:0      [点我收藏+]

一、数组定义的方法

数组名=(元素1 元素2 元素3......),使用括号包含数组中的元素,每个元素都有各自的下标(从0开始)

方式一:数组名=(value0 value1 value3 ......)

技术分享图片

方式二:数组名=([0]=value [1]=value [2]=value)

技术分享图片

方式三:列表名="value0 value1 value2"

数组名=($列表名)

技术分享图片

方式四:数组名[0]="value"

数组名[1]="value"

数组名[2]="value"

技术分享图片

1.1、数组包括的数据类型

数值类型

字符类型(字符串) 使用" "或’ ‘定义,防止元素当中有空格,元素按空格分割

1.2、获取数组长度

技术分享图片

1.3、获取数据列表

技术分享图片

1.4、读取某下标赋值

技术分享图片

1.5、数组遍历

技术分享图片

1.6、数组切片

技术分享图片

1.7、数组替换

技术分享图片

技术分享图片

1.8、数组删除

技术分享图片

1.9、数组追加元素

方法一:按照索引进行逐个添加

技术分享图片

方法二:按照最大索引值进行向后添加

技术分享图片

方法三:使用原数组的元素进行重新赋值

技术分享图片

注:双引号不能省略,否则数组中存在包含空格的元素时会按空格将元素拆分成多个
不能将“@”替换为“*”,如果替换为“*”,不加双引号时与“@”的表现一致,加双引号时,会将数组中的所有元素作为一个元素添加到数组中

方法四:数组名+=(元素)

技术分享图片

注:待添加元素必须用“()”包围起来,并且多个元素用空格分隔

1.10、向函数传递数组参数

技术分享图片

技术分享图片

技术分享图片

技术分享图片

二、数组排序算法

2.1、冒泡算法

类似气泡上涌的动作,会将数据在数组中从小到大或者从大到小不断的向前移动。

基本思想

冒泡排序的基本思想是对比相邻的两个元素值,如果满足条件就交换元素值,把较小的元素移动到数组前面,把大的元素移动到数组后面(也就是交换两个元素的位置),这样较小的元素就像气泡一样从底部上升到顶部。

算法思路

冒泡算法由双层循环实现,其中外部循环用于控制排序轮数,一般为要排序的数组长度减1次,因为最后一次循环只剩下一个数组元素,不需要对比,同时数组已经完成排序了。而内部循环主要用于对比数组中每个相邻元素的大小,以确定是否交换位置,对比和交换次数随排序轮数而减少。

技术分享图片

操作思路

技术分享图片

技术分享图片

2.2、直接排序法

与冒泡排序相比,直接选择排序的交换次数更少,所以速度会快些。

基本思想

将指定排序位置与其它数组元素分别对比,如果满足条件就交换元素值,注意这里区别冒泡排序,不是交换相邻元素,而是把满足条件的元素与指定的排序位置交换 (如从最后一个元素开始排序),这样排序好的位置逐渐扩大,最后整个数组都成为已排序好的格式。

技术分享图片

操作思路

技术分享图片

技术分享图片

2.3、反转排序

以相反的顺序把原有数组的内容重新排序

基本思想

把数组最后一个元素与第一个元素替换。倒数第二个元素与第二个元素替换,以此类推,直到把所有的数组元素反转替换完。

操作思路

技术分享图片

技术分享图片

shell数组

原文:https://www.cnblogs.com/liukai1/p/15038813.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!