Допустим массив arr[] содержит данные
0,0,0,0,1,2,3,4,5,1,1,1,1,5,5,5,5 в результате в массиве arr1[] необходимо получить
данные 0,1,2,3,4,5. Т. е. массив содержащий различные между собой
и одинаковые между собой данные преобразоать (отсортировать)
в массив содержащий только различные между собой данные.
Размерность массива не принципиальна. В моем случае двумерный
массив [0]-данные [1]-индекс.
- Типы оптимизации - Алгоритмический трейдинг, торговые роботы
- Статьи по разработке торговых приложений
- Работа с SQL-базами данных
Вот я тут что-то наляпал, должно работать... :)
neverUsedValue любое значение которое не может встречаться никогда в передаваемом массиве...
neverUsedValue любое значение которое не может встречаться никогда в передаваемом массиве...
int start() { int arr[]={0,0,0,0,1,2,3,4,5,1,1,1,1,5,5,5,5}; int size=arrangeArray(arr,-1); for(int i=0;i<size;i++) Print(arr[i]); return(0); } //+------------------------------------------------------------------+ int arrangeArray(int& arr[],int neverUsedValue) { int size=ArraySize(arr); int counter=0; for(int i=0;i<size;i++) if (arr[i]!=neverUsedValue) { arr[counter]=arr[i]; for(int j=counter+1;j<size;j++) if (arr[j]==arr[counter])arr[j]=neverUsedValue; counter++; } ArrayResize(arr,counter); ArraySort(arr); return (counter); }
Вот так вроде лучше (и быстрее)
int start() { int arr[] = {0,0,0,0,1,2,3,4,5,1,1,1,1,5,5,5,5}; int size = arrangeArray(arr); for(int i = 0; i < size; i++) Print(i," ",arr[i]); } int arrangeArray(int& arr[]) { int size = ArraySize(arr); int counter = 1; for(int i = 1; i < size; i++) { bool newItem = true; for(int j = 0; j < counter; j++) if (arr[i] == arr[j]) { newItem = false; break; } if (newItem) { arr[counter] = arr[i]; counter++; } } ArrayResize(arr,counter); ArraySort(arr); return (counter); }
Integer писал (а):
Наверно парень курсовик пишет:-)
Для меня может и курсовик ( третий месяц освоения МТ4 ранеееееее
к программированию только к ассемблеру как электронщик)Ronen:
Однако и так хорошо.. а теперь вопрос на засыпку... К чему эта функция???
Однако и так хорошо.. а теперь вопрос на засыпку... К чему эта функция???
Наверно парень курсовик пишет:-)
Но тем не менее Спасибо за ответ.
А задача моя пока состоит в анализе одновременной реакции некоторых индикаторов и тайм-серий на положительные мне события по истории. Результатом реакции является создаваемый массив, который сопоставляется с текущей ситуацией на каждом тике, создавая дополнительный параметр и если хотите фильтр. И если в массиве до 1000 и более значений, из которых только третья часть различаются между собой, зачем мне другими одинаковыми значениями нагружать компьютер.
Вычурно, как-то... Можно гораздо проще.
Алексей, ну зачем ты застыдил человека? Не все ведь успели посмотреть...
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь