配列の並び替え ArraySort 関数

関数

配列関数

ArraySort 関数

 この関数は、数値配列の 1次元目を並び替えます。1次元とは「縦列」のことです。 

 因みに、2次元は「横列」、3次元は「奥行」、4次元は「プラスの指標」と考えてください。4次元についての「プラスの指標」は物理空間とは限らず「時間」という考え方もあります。MQL4では最大 4次元まで設定できます。

データ型と構成・戻り値

bool ArraySort(①,②,③,④);

 戻り値は、並び替えが成功した場合は true、それ以外は falseが返されます。

引数 [4]

 ArraySort関数は 4個の引数で構成されます。


引数名データ型単位初期値説明
array[]const並び替え用の数値配列。
count整数
or
実数
WHOLE_ARRAY並び替える要素数。「WHOLE_ARRAY」は配列全体を並び替えます。
startint0並び替えする開始のインデックス番号。0は最初の要素から検索します。
directionintMODE_ASCEND並び替えの設定。
「MODE_ASCEND」は昇順、
「MODE_DESCEND」は降順。
※初期値があるものは省略可。但し、省略した引数以降は省略しなければなりません。

使用例

ArraySort関数による配列の並び替え

 2つの配列の並び替えをします。
 一つ目は、1次元配列を昇順で並び替えます。
 二つ目は、2次元配列の 1次元目を降順に並び替えます。

コード

// ArraySort関数による配列中の数値検索
#property strict
void OnInit() {

int arr1[4]   = {16,31,19,3};                              // 1次元配列              
int arr2[3][4]={{16,31,19,3},{20,21,28,24},{15,38,37,36}}; // 2次元配列

ArraySort(arr1);                                           // 昇順
ArraySort(arr2,WHOLE_ARRAY,0,MODE_DESCEND);                // 降順

Print("arr1[4]={",arr1[0],",",arr1[1],",",arr1[2],",",arr1[3],"}");

Print("arr2①={",arr2[0][0],",",arr2[0][1],",",arr2[0][2],",",arr2[0][3],"}");
Print("arr2②={",arr2[1][0],",",arr2[1][1],",",arr2[1][2],",",arr2[1][3],"}");
Print("arr2③={",arr2[2][0],",",arr2[2][1],",",arr2[2][2],",",arr2[2][3],"}");
}

コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

 1次元配列と 2次元配列での並び替えの違いについて確認をしてください。
 今回の場合、配列を書き直すと以下のようにも書けます。1次元は縦列になるので赤枠部分が並び替えの対象になります。2次元配列でも 1次元目が並び替わっていることが確認できます。

タイトルとURLをコピーしました