Очистка массива от заданного (ых) элементов - страница 23

 
Maxim Kuznetsov:
мне кажется что Николай его просто завершит, тут сравнивать не с чем :-) У Петра время завершения устремлено в бесконечность..

Ну да. С бесконечностью сравнивать бесполезно - будет бесконечность при любом раскладе. Но я имел в виду для сравнения текущее время полётов Петра.

 
Artyom Trishkin:

Ну да. С бесконечностью сравнивать бесполезно - будет бесконечность при любом раскладе. Но я имел в виду для сравнения текущее время полётов Петра.

Некорректность кода и, как следствие - результата. Могу пободаться маненько. 

 
Так, ребята, детский сад надоел. )) Николай, желаю творческих побед!
 
Реter Konow:

Начни такой же проект. Узнаешь.)

мои проекты совсем в другой области. Я уже говорил, что твой проект был актуален в конце 80-х годов прошлого тысячелетия. 
Анатолий поступил очень разумно. Он не только заработал баллы в этом сообществе, но и смог монетизировать свой труд в виде публикаций 70 статей. 

Твой же проект, Петр, - это Сизифов труд. Я тебе это уже говорил полтора года назад.

 

Чей алгоритм лучше всего подходит для незначительных изменений требований?

int array_filter(int &array[], const int &multiple_filters[]);


int array_filter(int &arr[], const int &filters[])
{
   int size_arr = ArraySize(arr);
   int size_filters = ArraySize(filters);
   int i=0, j=0, k=0;
   for(i=0; i<size_arr; i++){
      for(j=size_filters-1; j>=0; --j)
         if(arr[i] == filters[j])
            break;
      if(j < 0)
         arr[k++] = arr[i]; 
   }
   return ArrayResize(arr, k); 
}
 
nicholi shen:

Чей алгоритм лучше всего подходит для незначительных изменений требований?

И в чем вопрос. В простом сравнении массивов? Какие изменения, каких требований?

Правильно заданный вопрос. Половина ответа.

 
Konstantin Nikitin:

И в чем вопрос. В простом сравнении массивов? Какие изменения, каких требований?


Исходный исходный массив теперь фильтруется списком значений вместо одного значения.

 
nicholi shen:

Чей алгоритм лучше всего подходит для незначительных изменений требований?


если muliple_filters не слишком велик, то любой.. если большой, то могут быть особые алгоритмы сравнения множеств (по сути: вся задача - из одного множества вычитается другое)

вообще filter может иметь вид:

int array_filter(const T &src[], T &dst, bool (*filter_condition)(const T));

и допускать что src, dst могут ссылаться на один и тот-же массив.

Чтобы можно было например выбросить все числа попадающие (или не попадающие) в диапазон.

---

любой из представленных алгоритмов можно облечь в подобную форму. (вместо сравнения с константой X, будет вызов функции, (или как в вашем случае поиск элемента в массиве) )

 
nicholi shen:


Исходный исходный массив теперь фильтруется списком значений вместо одного значения.

Сочувствую. 

 
Maxim Kuznetsov:

если muliple_filters не слишком велик, то любой.. если большой, то могут быть особые алгоритмы сравнения множеств (по сути: вся задача - из одного множества вычитается другое)

вообще filter может иметь вид:

int array_filter(const T &src[], T &dst, bool (*filter_condition)(const T));

и допускать что src, dst могут ссылаться на один и тот-же массив.

Чтобы можно было например выбросить все числа попадающие (или не попадающие) в диапазон.

---

любой из представленных алгоритмов можно облечь в подобную форму. (вместо сравнения с константой X, будет вызов функции, (или как в вашем случае поиск элемента в массиве) )

Он ведь не русский, трудно поймет. El habla espanol.