Optimización de algoritmos. - página 8

 
Prueba algo más interesante.
graph sin t^2 - Wolfram|Alpha
  • www.wolframalpha.com
x
 
Considero cerrado el tema de la búsqueda de un extremo.
 

He buscado por toda la Internet en busca de la ordenación de matrices de cadenas http://ru.wikipedia.org/wiki/Быстрая_сортировка.

Terminé rediseñando QuickSort para adaptarlo a un array de cadenas.

También me gustaría incluir un modo para descartar registros únicos.

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) обменов...
 
¡Saludos!
Estoy atascado con la lógica del algoritmo para sincronizar el historial de ticks de dos o más símbolos, de manera que cada momento en el tiempo tendría un precio de símbolo correspondiente, sugerencia, colegas.
 
Andrey Dik:
¡Saludos!
Estoy atascado con la lógica del algoritmo para sincronizar el historial de ticks de dos o más símbolos, de manera que cada momento en el tiempo tendría un precio de símbolo correspondiente, sugerencia, colegas.
¿Conoce el iBarShift?
 
Vladimir Tkach:
¿Conoce el iBarShift?
Lo sé, ¿cómo me va a ayudar?
 
Andrey Dik:
¡Saludos!
Estoy atascado con la lógica del algoritmo para sincronizar el historial de ticks de dos o más símbolos, de manera que cada momento en el tiempo tendría un precio de símbolo correspondiente, sugerencia, colegas.
Si lo he entendido bien: estoy pensando en hacer esto - dividirlo en objetos separados por días, de modo que cada uno almacena matrices de ticks de todos los símbolos, (para cada día no es tantos ticks), y luego sólo de ordenados por la matriz de tiempo dar por solicitud "menos o igual".
 
Crear una matriz adicional. Escribe la hora de todos los personajes que hay. Ordenar de forma ascendente. Eliminar los duplicados. Sincroniza las herramientas utilizando esta matriz. Si no hay una coincidencia exacta, tome la hora de la garrapata más cercana.
 
Rorschach:
Crea una matriz adicional. Allí se escribe la hora de todos los símbolos. Ordenar de forma ascendente. Eliminar los duplicados. Sincroniza las herramientas utilizando esta matriz. Si no hay una coincidencia exacta, tome la hora de la garrapata más cercana.
Sí, eso es lo que hice.
pero a menudo hay ticks en el mismo personaje con el mismo tiempo, cuando hay varios ticks en un milisegundo
Aquí es donde me atasco en la lógica.
 
Andrey Dik:
Sí, eso es lo que hice.
pero a menudo hay ticks en el mismo personaje con el mismo tiempo, cuando hay varios ticks en un milisegundo
Ahí es donde se me atasca la lógica.

Puedes pensar en algunas opciones. Toma el precio medio por ms. Toma el último precio por ms. Aumente artificialmente la resolución a µs, por ejemplo, 3 ticks llegaron en un ms, haga que el tiempo del primer tick sea de 10µs, el segundo de 20µs, etc. La información del tiempo se pierde, no hay mejor opción. Tomar el último precio sería lo más habitual, como las barras de milisegundos funcionaría.

Razón de la queja: