169 похожих чатов

Кстати насчёт алгоритмов, есть идеи по быстрому удалению дубликатов в

массиве?

11 ответов

31 просмотр

Когда нужно «быстро», обычно, о прочих затратах не думают. Какие размеры массива? Гигабайты?

Sergei Zhmylove
Когда нужно «быстро», обычно, о прочих затратах не...

А ещё если не указывают, на каком процессоре должен исполняться код - значит не так уж и важна скорость. Скорее, просто чтоб быстрее обычного перебора было

А какие, собственно, есть еще варианты кроме формирования другого массива, в который элементы добавляются после проверки на отсутствие в нем?

Saenro- Автор вопроса
Saenro
Да, с гигабайтами интереснее)

Ну покажи решение своё, чего тянуть

Alexander Morozov
А какие, собственно, есть еще варианты кроме форми...

1 проход: кэширование ключа каждого элемента и при встрече одинакового элемента (с кэшем сравнивать), помечать его на удаление. 2 проход: удаление удалённых элементов, копированием неудалённых. Идея в том, что кэш делать индексированным, для быстроты поиска. Мне кажется это было бы быстрее, чем искать в массиве дубле. Но это моя топорная идея и она очень далека от крутых алгоритмов

Сергей
1 проход: кэширование ключа каждого элемента и при...

Это просто оптимизация исходного варианта с целью экономии памяти. Будет плохо работать если имеем длинный массив с элементами малого размера.

Сергей
1 проход: кэширование ключа каждого элемента и при...

Хорошая функция хэширования, а ещё и если её вызывать очень часто, может покрыть даже работу с памятью. Но всё же зависит от того, какая хэш-функция используется. CRC, вроде, не такой уж и затратный

Alexander Morozov
Это просто оптимизация исходного варианта с целью ...

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

Сергей
Но 2 почти одинаковых массива, это тоже дорого (по...

Дубль может быть в самом начале и в самом конце

CLFLUSH 🇷🇺 rdseed
Дубль может быть в самом начале и в самом конце

Да. И тогда на первом шаге придётся пройтись по всему массиву

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта