詳細なシェルスクリプト(6)-配列とソートアルゴリズムの概要
1つは、配列です
1.配列の定義方法
①。方法1:
②。方法2:
③。方法3:
④方法4:
2.配列に含まれるデータ型
- 数値型
- 文字タイプ(文字列):「」または「」を使用して、要素内のスペースを防ぐように定義します。要素はスペースで区切られます。
3.配列の長さを取得します
4.データリストを取得します
5.インデックスの割り当てを読み取ります
6.アレイトラバーサル
7.アレイスライシング
8.アレイの交換
9.配列の削除
10.配列に要素を追加します
方法一:按照索引进行逐个添加
array_name[index]=value
方法二:按照最大索引值进行向后添加
array_name[${
#array_name[@]}]=value
方法三:使用原数组的元素进行重新赋值
array_name=("${#array_name[@]}" value1 value2 ... valueN)
注:
双引号不能省略,否则数组中存在包含空格的元素时会按空格将元素拆分成多个
不能将“@”替换为“*”,如果替换为“*”,不加双引号时与“@”的表现一致,加双引号时,会将数组array_name中的所有元素作为一个元素添加到数组中
方法四:
array_name+=(value1 value2 ... valueN)
注:待添加元素必须用“()”包围起来,并且多个元素用空格分隔
11.配列パラメーターを関数に渡します
第二に、配列ソートアルゴリズム
1.バブリングアルゴリズム
-
バブルの急増と同様に、データは配列内で小さいものから大きいものへ、または大きいものから小さいものへと前進し続けます。
-
基本的な考え方:
- バブルソートの基本的な考え方は、隣接する2つの要素の値を比較することです。条件が満たされると、要素の値が交換され、小さい方の要素が配列の先頭に移動され、大きい方の要素が配列の先頭に移動されます。は配列の後ろに移動し(つまり、2つの要素の交換Position)、小さい方の要素が泡のように下から上に上昇します。
-
アルゴリズムのアイデア:
- バブリングアルゴリズムはダブルループによって実装されます。この場合、最後のループには配列要素が1つしか残っていないため、外側のループを使用して並べ替えの回数、通常は並べ替える配列の長さから1回を引いた数を制御します。比較は不要で、配列はソートされています。内側のループは主に、配列内の隣接する各要素のサイズを比較して、位置を交換するかどうかを決定するために使用されます。比較と交換の数は、ソートラウンドの数とともに減少します。
2.直接ソート方式
3.並べ替えを逆にします
-
元の配列の内容を逆の順序で並べ替えます
-
基本的な考え方:
- 配列の最後の要素を最初の要素に置き換えます。最後から2番目の要素は2番目の要素に置き換えられ、以下同様に、すべての配列要素が逆になって置き換えられます。