【拔刀吧少年】之shell数组
數(shù)組
- 一、數(shù)組
- 1、數(shù)組的定義方法
- 2、數(shù)組包括的數(shù)據(jù)類型
- 3、獲取數(shù)組長度
- 4、獲取數(shù)據(jù)列表
- 5、讀取某索引賦值
- 6、數(shù)組遍歷
- 7、數(shù)組切片
- 8、數(shù)組替換
- 9、數(shù)組刪除
- 10、數(shù)組追加元素
- 二、數(shù)組排序算法
- 1、冒泡算法
- 2、直接排序法
- 3、反轉(zhuǎn)排序
一、數(shù)組
1、數(shù)組的定義方法
①、方式一:
②、方式二:
③、方式三:
④、方式四:
2、數(shù)組包括的數(shù)據(jù)類型
數(shù)值類型
字符類型(字符串):使用" "或’ '定義,防止元素當(dāng)中有空格,元素按空格分割。
3、獲取數(shù)組長度
4、獲取數(shù)據(jù)列表
5、讀取某索引賦值
6、數(shù)組遍歷
7、數(shù)組切片
8、數(shù)組替換
9、數(shù)組刪除
10、數(shù)組追加元素
方法一:按照索引進(jìn)行逐個(gè)添加
array_name[index]=value
方法二:按照最大索引值進(jìn)行向后添加
array_name[${#array_name[@]}]=value
方法三:使用原數(shù)組的元素進(jìn)行重新賦值
array_name=("${array_name[@]}" value1 value2 … valueN)
注:
雙引號(hào)不能省略,否則數(shù)組中存在包含空格的元素時(shí)會(huì)按空格將元素拆分成多個(gè)
不能將“@”替換為“”,如果替換為“”,不加雙引號(hào)時(shí)與“@”的表現(xiàn)一致,加雙引號(hào)時(shí),會(huì)將數(shù)組array_name中的所有元素作為一個(gè)元素添加到數(shù)組中
方法四:
array_name+=(value1 value2 … valueN)
注:待添加元素必須用“()”包圍起來,并且多個(gè)元素用空格分隔
11、向函數(shù)傳遞數(shù)組參數(shù)
二、數(shù)組排序算法
1、冒泡算法
類似氣泡上涌的動(dòng)作,會(huì)將數(shù)據(jù)在數(shù)組中從小到大或者從大到小不斷的向前移動(dòng)。
基本思想:
冒泡排序的基本思想是對(duì)比相鄰的兩個(gè)元素值,如果滿足條件就交換元素值,把較小的元素移動(dòng)到數(shù)組前面,把大的元素移動(dòng)到數(shù)組后面(也就是交換兩個(gè)元素的位置),這樣較小的元素就像氣泡一樣從底部上升到頂部。
算法思路:
冒泡算法由雙層循環(huán)實(shí)現(xiàn),其中外部循環(huán)用于控制排序輪數(shù),一般為要排序的數(shù)組長度減1次,因?yàn)樽詈笠淮窝h(huán)只剩下一個(gè)數(shù)組元素,不需要對(duì)比,同時(shí)數(shù)組已經(jīng)完成排序了。而內(nèi)部循環(huán)主要用于對(duì)比數(shù)組中每個(gè)相鄰元素的大小,以確定是否交換位置,對(duì)比和交換次數(shù)隨排序輪數(shù)而減少。
2、直接排序法
3、反轉(zhuǎn)排序
以相反的順序把原有數(shù)組的內(nèi)容重新排序
基本思想:
把數(shù)組最后一個(gè)元素與第一個(gè)元素替換。倒數(shù)第二個(gè)元素與第二個(gè)元素替換,以此類推,直到把所有的數(shù)組元素反轉(zhuǎn)替換完。
總結(jié)
以上是生活随笔為你收集整理的【拔刀吧少年】之shell数组的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【拔刀吧少年】之shell函数
- 下一篇: 【拔刀吧少年】之正则表达式