|
|
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
Panshin, Кто-то сказал, что число 36 253 в этой последовательности есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 12:28 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
PanshinЭто очень просто без всякого алгоритма, если подумать. Если число одно и повторяется только один раз, то сложи числа от 1 до миллиона, потом сложи данную последовательность чисел и от второго отними первое. Получишь число, которое повторилось. Если в исходном массиве числа 1,2,2 то какой результат вы получите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 12:30 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
Требуется указать число, либо его индекс в некотором массиве. Возможных индексов - n, чисел - 1000000. Если отсортировать массив (O(n*ln(n))), то проверка каждого индекса на правильность - O(1). Каким свойством вместо монотонности может обладать массив, чтобы наличие дубликатов элемента по заданному индексу проверялось за O(1)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 12:33 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
DENIS_CHEL, Понятное дело я указал на частный случай. Можно обобщить. Сложим все числа последовательности 1,2,2 = 5 Следовательно максимальное число в последовательности будет не более 5. Далее найдем максимальное число в последовательности и вычтем его из суммы, при этом удалим его из последовательности. Выполнив таким образом m-1 шагов, где m - количество элементов в последовательности мы найдем парное число так как оно будет дважды появляться в нахождении максимума урезаемой последовательности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 12:40 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
Panshin, получится О(N 2 ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 12:44 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
Panshin На каждой итерации мы осуществляем поиск максимума... Будет ли в общем случае выигрыш по сравнению с сортировкой?:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 12:46 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
а с адресацией ничего нельзя замутить? ну там проверять память по адресу == числу в массиве и если не какое-то значение, значит менять. если значение уже есть, то значит нашли. хотя это ничем от массива не отличается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 12:47 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
romapost, #define ARRAY_DIMENSION 1000000 //исходный массив с числами int [ARRAY_DIMENSION] iArr; bool *boolArr = new bool[ARRAY_DIMENSION]; // по умолчанию заполнено нулями, то есть false for (int ind = 0; ind < ARRAY_DIMENSION; i++) { if (boolArr [iArr[ind] - 1] ) { //мы нашли это число return iArr[ind]; } else { boolArr [iArr[ind] - 1] = true; } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 12:50 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
Nitica, Бедный процессор. И вообще, если массив "по умолчанию" заполнен нулями, то, позвольте спросить, кто его заполнил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 12:57 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
Исходный массив с числами произвольной длины... Но не больше 1 000 000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 12:57 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
Пока приходит на ум какая нибудь быстрая сортировка, где в операции сравнения и будем проверять на равенство ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 13:00 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
DENIS_CHELИсходный массив с числами произвольной длины... Но не больше 1 000 000. 1 000 001 ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 13:04 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
JoFanПока приходит на ум какая нибудь быстрая сортировка, где в операции сравнения и будем проверять на равенство Быстрые сортировки потому и быстрые, что сравнивают друг с другом не все n(n-1)/2 пар. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 13:10 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
Abstraction, Бедный процессор. то есть сортировка, по Вашему мнению, менее затратна, чем просто один пробег по массиву. Указатели - самое менее затратное средство в вычислениях как ни крути :) И вообще, если массив "по умолчанию" заполнен нулями, то, позвольте спросить, кто его заполнил? это псевдо-код :) в Visual C, например, точно будут нулики ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 13:15 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
NiticaAbstraction, Бедный процессор. то есть сортировка, по Вашему мнению, менее затратна, чем просто один пробег по массиву. Указатели - самое менее затратное средство в вычислениях как ни крути :) И вообще, если массив "по умолчанию" заполнен нулями, то, позвольте спросить, кто его заполнил? это псевдо-код :) в Visual C, например, точно будут нулики Массив в 500 элементов, а мы отжираем 2 Mb. Спорный выигрыш. Visual C++ 6.0, насколько помню, выделяемую такой конструкцией память не обнуляет. Для примера. В любом случае, если мы не надеемся на то, что у системы завалялись обнулённые страницы, это придётся делать нашему процессу, увы. А если танцевать от хэш-таблицы? Функция h(x)=x%n, получаем n классов (некоторые из которых, возможно, пустые), оба дубликата в одном классе; время создания - O(n), среднее время проверки одного класса - O(1). Правда, при этом совершенно не используем ограниченность спектра значений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 13:31 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
AbstractionМассив в 500 элементов, а мы отжираем 2 Mb. Спорный выигрыш. при иницилизации массива ничего физически не выделяется. а вот когда начинаем обнулять, да... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 13:34 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
Abstraction, Массив в 500 элементов, а мы отжираем 2 Mb. Спорный выигрыш. в формулировке задачи вроде как ясно сказано, что ограничений по памяти нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 13:41 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
eNoseпри иницилизации массива ничего физически не выделяется. Я что-то пропустил? После инициализации мы имеем адрес начала области памяти, к которой можно обращаться. Откуда она берётся, в таком случае? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 13:42 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
NiticaAbstraction, Массив в 500 элементов, а мы отжираем 2 Mb. Спорный выигрыш. в формулировке задачи вроде как ясно сказано, что ограничений по памяти нет. Ограничений нет. Но эти 500 1250 страниц кому-то надо выделить, а потом эти полмиллиона миллион с хвостиком машинных слов кому-то обнулить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 13:45 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
AbstractioneNoseпри иницилизации массива ничего физически не выделяется. Я что-то пропустил? После инициализации мы имеем адрес начала области памяти, к которой можно обращаться. Откуда она берётся, в таком случае? вот когда начнешь обращаться, тогда и выделяться будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 13:45 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
Abstraction, можешь проверить. выдели памяти под массив больше чем доступно. выделится. начни заполнять - получишь ошибку нехватки памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 13:46 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
Abstraction, Ограничений нет. Но эти 500 1250 страниц кому-то надо выделить, а потом эти полмиллиона миллион с хвостиком машинных слов кому-то обнулить. В Винде есть ZeroMemory - она прекрасно справится :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 13:53 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
eNose, Проверил на C#, проверил на C++. Я прав ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 14:36 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
AbstractioneNose, Проверил на C#, проверил на C++. Я прав ;) проверь на делфи ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 14:41 |
|
||
|
Подскажите алогоритм, литературу по решению данной задачи
|
|||
|---|---|---|---|
|
#18+
eNose, Где ж я вам его возьму? Но вообще, идея выделять память только при обращении к ней подразумевает, что мы обращаемся не напрямую к памяти, а вызываем некоторый метод, который вначале проверяет, выделили ли нам эту память. Что выливается в потерю производительности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2011, 14:44 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=37411508&tid=1342770]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
178ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 475ms |

| 0 / 0 |
