文字列を含む配列のソート関数

アイキャッチ

MQL4のArraySort()は数字しかソートしてくれない

順番が意味を持つアルゴリズムを考える時に、ソートが必要になることがあります。

普通は、MQL4標準関数のArraySort()で事足りるのでしょうが、文字列を含む配列を並び替えたい時は、この関数では対応できません。

「文字列を含む配列なんて使う時ある?」って思われるかもしれませんが、オーダー時のコメント情報をアルゴリズムに組み込むことがたまにあります。

というわけで、必要に迫られて以下のソート関数を作りました。

配列要素の中身は数字でも文字で何でもOKですが、型は文字列型にしておく必要があります。

また、1項目目はソートに使う項目のため、必ず数字型の項目にしておかなければなりません。

さらに、配列の列数は事前に指定しておく必要があり、この例では3列の配列を想定しているため、引数配列の列番号に「3」が記入されています。上記のプログラムを使う時は、ここを適宜変更してください。

ソート種類
ソートアルゴリズムには他にも沢山の種類があって高速化できるのですが、複雑になるし面倒くさかった(!)ので、一番単純なバブルソートを採用しました。

2015/12/15修正 プログラムに不備があったので修正しました。また、引数の列数はいつの間にか不要になっていたので、文を削除しました。

ブログランキングに参加中!

ポチっとクリック頂けると励みになります♪
(クリックしてもランキング一覧が表示されるだけですが、それでOKです)

  にほんブログ村 為替ブログ FX システムトレード派へ

コメントを残す



20 − 15 =