Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
Нужно сравнить элементы файла таким образом, чтобы узнать, нет ли в нём одинаковых элементов. Файл: 100 200 356 899 125 ... Проблема заключается в том, что в файле может находится большое кол-во элементов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2015, 15:02 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
Отсортировать и сравнивать соседние. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2015, 15:04 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
Т.е. сначала загрузить эти значения в массив, а затем отсортировать и сравнить соседние? А сколько это будет занимать времени, если, к примеру, загрузка этих данных в массив длится около 7 минут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2015, 15:06 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
Скорость сортировки зависит от размера массива, объема реальной памяти и скорости проца. PS Быстрее способа все равно нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2015, 15:16 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
Dima T...PS Быстрее способа все равно нет. это ложное утверждение. если разрядность чисел входит в ворд - то можно тупо анализ на ноль хотя-бы одного в массиве. туда-же вопрос про сортировку этих чисел... обычно похожие вопросы про числа размерностью в байт звучат на собеседованиях(тупые юзеры думают, что это главное в повседневной работе :) ) (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2015, 15:32 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
ukugyul552465Проблема заключается в том, что в файле может находится большое кол-во элементов. Наоборот, это не проблема, а решение. Как только размер файла превысил мощность множества элементов, можно не глядя возвращать true. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2015, 15:41 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
kolobok0если разрядность чисел входит в ворд - то можно тупо анализ на ноль хотя-бы одного в массиве. И как это спасет если, например, повторяется 1 ? Если разрядность небольшая word (byte) то можно и не считая сказать что есть повторы если чисел больше 65536 (256). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2015, 15:46 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
Числа типа unsigned long int. Файл содержит от 1 миллиона до 100 миллионов чисел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2015, 16:13 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
ukugyul552465Числа типа unsigned long int. Файл содержит от 1 миллиона до 100 миллионов чисел. Два способа решения: 1) Битовая маска размером 1/8 адресного пространства; 2) Сортировка (внутренняя или внешняя). Первый быстрее, второй надёжнее. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2015, 16:19 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
100 млн ~ 400 Мб. В память должно влезть. Сортировка думаю не более 3-5 сек. займет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2015, 16:20 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
Можно еще в несколько проходов проверять битовой маской интервалы значений, тогда на памяти маску будет уходить 512М/количество проходов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2015, 16:30 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov1) Битовая маска размером 1/8 адресного пространства; +1 забыл я про бит-карту. unsigned long int это 4 байта При наличии 1 Гб адресного пространства покрывается весь диапазон. Так можно в один проход найти все повторы, быстрее сортировки будет. Можно предварительно первым проходом min/max найти, тогда память можно сэкономить (надо ((max - min) / 8) байт), но в худшем случае может оказаться 1 Гб. В лучшем случае 12,5 Мб. Хотя реально весь 1 Гб потребуется только при выделении памяти, в процессе работы в реальной памяти нужны будут только те страницы, которые будут использованы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2015, 16:47 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
Dima Tunsigned long int это 4 байта Только для 32-х разрядных платформ. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2015, 16:49 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
Что-то туплю. Не 1 Гб, а 0,5 Гб. т.е. 2^32 / 8 = 512 Мб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2015, 16:50 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovDima Tunsigned long int это 4 байта Только для 32-х разрядных платформ. Код: plaintext 1. MS VC 2015 при компиляции в x64 выдает 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2015, 16:53 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
Dima TMS VC 2015 при компиляции в x64 выдает 4. GCC на CentOS 64 бит выдаёт 8. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2015, 17:00 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
Dima T100 млн ~ 400 Мб. В память должно влезть. Сортировка думаю не более 3-5 сек. займет. Поскольку лишнее ложное срабатывание мы можем повторно проверить и отбросить, вместо биткарты - можно взять карту Блума. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2015, 17:37 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
ukugyul552465Т.е. сначала загрузить эти значения в массив, а затем отсортировать и сравнить соседние? А сколько это будет занимать времени, если, к примеру, загрузка этих данных в массив длится около 7 минут? очевидно, не менее 14 минут... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2015, 06:00 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
MasterZivukugyul552465Т.е. сначала загрузить эти значения в массив, а затем отсортировать и сравнить соседние? А сколько это будет занимать времени, если, к примеру, загрузка этих данных в массив длится около 7 минут? очевидно, не менее 14 минут... А если сразу B* дерево строить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2015, 10:54 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
ukugyul552465Числа типа unsigned long int. Файл содержит от 1 миллиона до 100 миллионов чисел. Можно построить хоть целый лес, но 100 миллионов чисел вполне себе поместятся в памяти даже не слишком старых смартфонов. То есть грузим все, сортируем, ищем дубли. Деревья, фильтры Блума, битовые маски, разреженные маски и внешние сортировки в данном случае - просто способ развлечься. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2015, 11:30 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
А зачем всё грузить? Нужно сравнить элементы файла таким образом, чтобы узнать, нет ли в нём одинаковых элементов. Можно ли утверждать что нас интересуетс только факт наличия одинаковых элементов? Результат true/false и при этом вычитывать до конца второй массив уж точно не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2015, 11:58 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
maytonА зачем всё грузить? чтобы действовать стандартным путём - предварительно вылить воду из чайника и свести задачу к предыдущей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.12.2015, 15:40 |
|
||
|
Сравнение элементов массива
|
|||
|---|---|---|---|
|
#18+
Спасибо. Всё нормально получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2015, 17:16 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39139887&tid=2018649]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
71ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 177ms |

| 0 / 0 |
