Оптимизация алгоритмов. - страница 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) обменов...
 
Приветствую!
Что то запарился с логикой алгоритма синхронизации тиковой истории двух и более символов, что бы каждому моменту времени была соответствующая цена символов, наведите на мысль, коллеги. 
 
Andrey Dik:
Приветствую!
Что то запарился с логикой алгоритма синхронизации тиковой истории двух и более символов, что бы каждому моменту времени была соответствующая цена символов, наведите на мысль, коллеги. 
Про iBarShift знаете?
 
Vladimir Tkach:
Про iBarShift знаете?
знаю, как это мне поможет? 
 
Andrey Dik:
Приветствую!
Что то запарился с логикой алгоритма синхронизации тиковой истории двух и более символов, что бы каждому моменту времени была соответствующая цена символов, наведите на мысль, коллеги. 
Если я правильно понял о чем: Я вот думаю сделать так - разбить на отдельные объекты по суткам, чтобы в каждом хранились  массивы тиков всех инструментов, (на каждые сутки уже не так много тиков), ну и потом просто из отсортированного по времени массива отдавать по запросу "меньше или равно". 
 
Создать дополнительный массив. Туда записать время со всех символов. Отсортировать по возрастанию. Удалить дубликаты. Синхронизировать инструменты по этому массиву. Если нет точного соответствия, брать время ближайшего тика.
 
Rorschach:
Создать дополнительный массив. Туда записать время со всех символов. Отсортировать по возрастанию. Удалить дубликаты. Синхронизировать инструменты по этому массиву. Если нет точного соответствия, брать время ближайшего тика.
ага, так и сделал
но часто бывают тики на одном символе с одним и тем же временем, когда за миллисекунду приходит несколько тиков
вот тут я и застрял в логике
 
Andrey Dik:
ага, так и сделал
но часто бывают тики на одном символе с одним и тем же временем, когда за миллисекунду приходит несколько тиков
вот тут я и застрял в логике

Можно несколько вариантов придумать. Брать среднюю цену за мс. Брать последнюю цену за мс. Искусственно увеличить разрешение до мкс, например, пришло 3 тика в одну мс, время первого тика сделать 10мкс, второго 20мкс и тд. Информация о времени потеряна, лучшего варианта нет. Брать последнюю цену самое привычное будет, вроде миллисекундных баров получится.

Причина обращения: