최적화 중 일회성 어레이 계산 - 페이지 8

 
forexman77 :

기본적으로 수업에는 모든 것이 있습니다. 저에게는 어두운 숲입니다. 그런데 몇 가지 생각이 들었다. 날짜와 숫자를 따로따로 배열로 만드세요. 만, 정렬 후 날짜가있는 색인 번호, 즉 두 번째 차원에있는 i를 얻는 방법은 무엇입니까?

datetime m[ 215 ][ 1 ];
double d[ 215 ][ 2 ];

m[ 0 ][i]=Dat_DtTm;
d[i][ 0 ]=f1;
d[i][ 1 ]=f2;

다음과 같이 했습니다.

datetime m1[ 215 ];
datetime m2[ 215 ];
double d[ 215 ][ 4 ];

m1[i]=Dat_DtTm;
m2[i]=Dat_DtTm;
d[i][ 0 ]=f1;
d[i][ 1 ]= 0.0 ;
d[i][ 2 ]=f2;
d[i][ 3 ]= 0.0 ;

ArraySort (m1, WHOLE_ARRAY , 0 , MODE_DESCEND );

for ( int y= 214 ;y>= 0 ;y--)
   {
  
   for ( int a= 214 ;a>= 0 ;a--)
   {
   if (m1[y]==m2[a])
   {
   d[y][ 1 ]=d[a][ 0 ];
   d[y][ 3 ]=d[a][ 2 ];
   Print ( "m1[y]=" ,m1[y], "d[y][1]=" ,d[y][ 1 ], "d[y][3]=" ,d[y][ 3 ], "y=" ,y);
   break ;
   }
   }
   }
 
forexman77 :

기본적으로 수업에는 모든 것이 있습니다. 저에게는 어두운 숲입니다. 그런데 몇 가지 생각이 들었다. 날짜와 숫자를 따로따로 배열로 만드세요. 만, 정렬 후 날짜가있는 색인 번호, 즉 두 번째 차원에있는 i를 얻는 방법은 무엇입니까?

datetime m[ 215 ][ 1 ];
double d[ 215 ][ 2 ];

m[ 0 ][i]=Dat_DtTm;
d[i][ 0 ]=f1;
d[i][ 1 ]=f2;

모든 것이 훨씬 쉽습니다. datetime m_date[4000]과 같은 날짜 배열과 int , string, double .. 및 모든 차원과 같은 모든 유형 의 다른 배열이 있다고 가정합니다.

이들 모두는 이 배열의 i번째 행에 있는 데이터가 날짜 m_date[ i ]에 해당한다는 사실로 연결됩니다. 이러한 모든 배열을 날짜별로 정렬해야 합니다.

m_dim을 이 배열의 행 수(날짜 수)로 설정합니다. 우리는 비용이 많이 드는 작업으로 ArrayResize를 사용 하지 않고 이 예에서는 m_dim <= 4000만 사용합니다.

// Создаем индексный массив Все остальные массивы в первом измерении имеют ту же размерность
int m_index[ 4000 , 2 ];

// Заполняем массив индексов:
for ( int i =  0 ; i < m_dim; i ++ )
{
   m_index[ i, 0 ] = m_date[ i ];
   m_index[ i, 1 ] = i;
}
// Сортируем индексный массив
ArraySort ( m_index, m_dim, 0, MODE_DECEND);

// Все

이제 첫 번째 차원에서 날짜를 가져오고 두 번째 차원에서 이 날짜에 해당하는 배열 인덱스 를 가져옵니다.

 
Mislaid :

모든 것이 훨씬 쉽습니다. datetime m_date[4000]과 같은 날짜 배열과 int , string, double .. 및 모든 차원과 같은 모든 유형 의 다른 배열이 있다고 가정합니다.

이들 모두는 이 배열의 i번째 행에 있는 데이터가 날짜 m_date[ i ]에 해당한다는 사실로 연결됩니다. 이러한 모든 배열을 날짜별로 정렬해야 합니다.

m_dim을 이 배열의 행 수(날짜 수)로 설정합니다. 우리는 비용이 많이 드는 작업으로 ArrayResize를 사용 하지 않고 이 예에서는 m_dim <= 4000만 사용합니다.

// Создаем индексный массив Все остальные массивы в первом измерении имеют ту же размерность
int m_index[ 4000 , 2 ];

// Заполняем массив индексов:
for ( int i =  0 ; i < m_dim; i ++ )
{
   m_index[ i, 0 ] = m_date[ i ];
   m_index[ i, 1 ] = i;
}
// Сортируем индексный массив
ArraySort ( m_index, m_dim, 0, MODE_DECEND);

// Все

이제 첫 번째 차원에서 날짜를 가져오고 두 번째 차원에서 이 날짜에 해당하는 배열 인덱스 를 가져옵니다.

고맙습니다! 나는 사용할 것이다.
사유: