汎用クラスライブラリ - バグ、説明、質問、使用上の特徴、提案 - ページ 2

 
コンビナート です。
平均時間O(1) 最悪O(n)、性能はハッシュに強く依存する。

O(n)......それは、真っ向からぶつかり合った場合の話です。

 
ワシリー・ソコロフ


2017年12月6日現在、MetaTrader 5の 標準配信セットには、データの保存と抽出のための効率的なアルゴリズムを実装した、いわゆるGenericクラスが 含まれています。 このブランチは、これらのクラスについて説明し、それらを使った作業の例や、作業を改善するための提案のために作成されています。

ジェネリックとは? Genericは、カスタムデータ型を 格納することができる特別なテンプレートクラスです。コンパイル時に型判別が行われるため、高い性能を発揮する。

なぜGenericなのか? 通常、初心者のプログラマーは、1種類のコレクション、つまり配列にしか馴染みがない。しかし、配列で作業することが有効でない作業も多くあります。100万個のユニークな識別子からなる配列があるとします。例えば、1000個の注文があるとします。この1000件の注文の中に、番号Nの注文が1件あるかどうかを確認するにはどうすればよいですか?汎用クラスの一つを使えば、この作業はほぼ即座に、検索する要素の数に依存しない一定の時間で達成することができる。他にも、プログラマが考案したアルゴリズムよりも、一般的なコレクションから正しいアルゴリズムを選択した方が高速になる問題もある。

面白いテーマですね。

個人的には、プログラミングにおいて、データを配列の中に整理し、その配列をループの中で正しく扱うことほど効率的なものはないと思っています。これが基本中の基本です。他のすべてのソリューションは、追加のコンピュータ時間を取り、オーバーヘッドを作成する誘導体 です。

グローバル配列、ローカル配列、ループ、関数。すべてです。

これらのツールを巧みに使いこなす人は、効率性において他の誰よりも優れていることでしょう。

イムホ

 
イワン・グロフ

名前をもっとシンプルに、論理的にしたほうがいい。例えば、CArrayListはArrayなのか、mql5におけるListなのか、両方の実装なのか。

そのため、疑問や混乱が生じるのです。IMHOは、C#やJavaではなく、stlを使うべきだと考えています。あるいは、前のCを削除して、ArrayListだけにしてください。

...

逆に、私はC#を使うのがとても好きです。

 
fxsaber

はっきり言いましたよ。

ハイライトされているものを見てください。

調べました。ちゃんと書いてありますよ。答えは、「辞書の項目を探すのに平均O(1)かかる、つまり瞬時である」です。
 
ウラジーミル・カルプトフ
例えば、何千もの案件の中から検索するような例を挙げていただければと思います。

OKです。

 
タグコノウ

これは面白いテーマですね。

個人的には、プログラミングにおいて、配列の中でデータを正しく整理する方法と、その配列をループの中で正しく扱う方法を知ることほど、有効なものはないと思っています。これが基本中の基本です。他のすべての解決策は、追加のコンピュータ時間がかかり、オーバーヘッドを発生させる誘導体 です。

グローバル配列、ローカル配列、ループ、関数。すべてです。

これらのツールを見事に使いこなすことができるプログラマーは、効率性で他の追随を許さないだろう。

イムホ

ピーター、ゆっくりしてください。これはSBの新クラスについての議論であって、あなたの抽象的な発言ではありません。話題を横流ししないでください。ありがとうございます。

 
アルチョム・トリシキン

ピーター、ゆっくりしてください。これはSBの新クラスについての議論であって、あなたの抽象的な発言ではありません。話題を横取りしないでください。ありがとうございます。

私には意見を言う権利があるのか?それとも、あなたにとって耐え難いことなのでしょうか?
 
レテグ・コノウ
私には意見を言う権利があるのでしょうか?それとも、あなたにとって耐え難いものなのでしょうか?
いや、この意見はすでに100回出ていて、ここでもまた、ウープが悪であるなどというサモバルを言っているからだ。
 
タグコノウ
意見を言う権利はあるのか?それとも、あなたにとって耐え難いものなのでしょうか?

あなたの意見は、たいてい『戦争と平和』全3巻の論説です。だから、控えたほうがいいんです。

注 - これはモデレーターからの2回目のリクエストです。

 
fxsaber

O(n)はヘッド・トゥ・ヘッドの場合です。

いいえ、O(n)はごく稀にハッシュの衝突が原因です。これらは、最適なアルゴリズムに対する複雑さの推定値である。衝突の回数は、メモリのオーバーヘッドに関係します

通常の場合、ハッシュを計算することによって、目的の要素の位置が本質的に既に分かっているので、検索する必要はない

理由: