アルゴリズムの最適化 - ページ 8

 
もっと面白いことに挑戦してください。
graph sin t^2 - Wolfram|Alpha
  • www.wolframalpha.com
x
 
私は、極限を求めるという テーマは閉じたものだと考えています。
 

文字列配列のソートを探してインターネット中を検索したところ、http://ru.wikipedia.org/wiki/Быстрая_сортировка

結局、QuickSortを文字列配列に合うように設計し直しました。

ユニークなレコードを破棄するモードも搭載したいですね。

int OnInit()
{
string N[8];
N[0]="123";
N[1]="asdfgg";
N[2]="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa5";
N[3]="548";
N[4]="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa6";
N[5]="***";
N[6]="asdfg";
N[7]="+++++";
StrQuickSort(N);
Comment(
N[0]+"\n",
N[1]+"\n",
N[2]+"\n",
N[3]+"\n",
N[4]+"\n",
N[5]+"\n",
N[6]+"\n",
N[7]
);


return(0);
}

void StrQuickSort(string &A[])
{
QuickSort(A,0,ArrayRange(A,0)-1);
}
//void QuickSort(double &A[],int &r[],int from,int to)
//void CLONGArray::QuickSort(long &m_data[],Cint2D &index,int beg,int end,bool mode=0)
void QuickSort(string &A[],int from,int to)
  {
   int i,j;//,itemp;
   string x,temp;
   if(from>=to)return;
   i=from;
   j=to;
   x=A[(from+to)>>1];
   while(i<=j)
     {
      while(A[i]<x)i++; 
      while(A[j]>x)j--;
      if(i<=j)
        {
         temp=A[i]; A[i]=A[j]; A[j]=temp;
         //itemp=r[i]; r[i]=r[j]; r[j]=itemp;
         i++;
         j--;
        }
     }
   QuickSort(A,from,j);
   //QuickSort(A,r,from,j);
   QuickSort(A,i,to);  
   //QuickSort(A,r,i,to);
  }
Быстрая сортировка — Википедия
  • ru.wikipedia.org
Быстрая сортировка (англ.  ), часто называемая qsort по имени реализации в стандартной библиотеке языка Си — широко известный алгоритм сортировки, разработанный английским информатиком Чарльзом Хоаром во время его работы в МГУ в 1960 году. Один из самых быстрых известных универсальных алгоритмов сортировки массивов (в среднем O(n log n) обменов...
 
ごあいさつ
私は、2つ以上のシンボルのティック履歴を 同期させるアルゴリズムのロジックで、時間の各瞬間に対応するシンボルの価格、提案、同僚を持つようにするために泥沼にはまるのです。
 
Andrey Dik:
ごあいさつ
私は、2つ以上のシンボルのティック履歴を 同期させるアルゴリズムのロジックで、時間の各瞬間に対応するシンボルの価格、提案、同僚を持つようにするために泥沼にはまるのです。
iBarShiftをご存知ですか?
 
Vladimir Tkach:
iBarShiftをご存知ですか?
そうですね、どう役に立つのでしょうか?
 
Andrey Dik:
ごあいさつ
私は、2つ以上のシンボルのティック履歴を 同期させるアルゴリズムのロジックで、時間の各瞬間に対応するシンボルの価格、提案、同僚を持つようにするために泥沼にはまるのです。
私はこれを行うことを考えている:日ごとに別々のオブジェクトにそれを破るので、それぞれがすべてのシンボルのティックの配列を格納し、(各日はそれほど多くのティックではありません)、そしてちょうど時間の配列によってソートから要求によって与える "以下または等しい"。
 
追加で配列を作成します。そこにあるすべての文字から時間を書き込む。昇順でソートします。重複を削除する。この配列を使ってツールを同期させる。完全に一致するものがない場合は、最も近い目盛りの時刻をとる。
 
Rorschach:
追加で配列を作成します。そこに、すべてのシンボルから時間を書き込む。昇順でソートします。重複を削除する。この配列を使ってツールを同期させる。完全に一致するものがない場合は、最も近い目盛りの時刻をとる。
ええ、その通りです。
が、同じ文字に同じ時刻の刻みがあることが多く、1ミリ秒に数回刻みがある場合
ここで論理に行き詰まる。
 
Andrey Dik:
ええ、その通りです。
が、同じ文字に同じ時刻の刻みがあることが多く、1ミリ秒に何度も刻みがある場合
そこで論理に行き詰まるんです。

と考えることができます。1msあたりの平均値をとる。msあたりの最後の価格を取る。人為的に分解能をµsに上げる。例えば、3つのティックが1msで来た場合、最初のティックの時間を10µs、2番目のティックを20µsにする、など。時間情報が失われる、これ以上の選択肢はない。最後の価格を取るのが最も普通で、ミリ秒単位のバーがうまくいくようなものでしょう。

理由: