
Can
25.02.2017
18:33:17
За линейное время и за константную доп память

Aldar
25.02.2017
18:33:20
массив получается c n-2 элементами

Alexander
25.02.2017
18:34:22
2 прохода это тоже линейное время

Aldar
25.02.2017
18:34:39
за один проход нужно?

Google

Dmitry
25.02.2017
18:39:09
0..n |> Enum.reject(&(Enum.member?(shuffled, &1)) за сколько работает?
За n^2 ??

Aldar
25.02.2017
18:40:33
похоже на то

Dmitry
25.02.2017
18:41:33
Осталось найти решение за C^n

Aldar
25.02.2017
18:42:08
за линейное время достаточно просто, а вот за один проход с константной памятью

Alexander
25.02.2017
18:43:25
первый проход - строим хэш с ключами от 1 до N
второй идём по данным, выкидываем из хэша попавшиеся ключи
оставшиеся невыкинутыми ключи в хэше искомые
как за один, непонятно

Can
25.02.2017
18:45:00
Ну
Один или два прохода не принципиально
Это линейное время
Проблема что словарь нельзя
Это не константная доп память
Константная - это несколько переменных все из которых ты будешь знать заранее
На этапе компиляции грубо говоря

Google

Dmitry
25.02.2017
18:46:11
А если идти по индексам значений?

Alexander
25.02.2017
18:46:57
Массив рамером N - константная память

Dmitry
25.02.2017
18:47:04
Ща из толчка выду - бумажку возьму

Alexander
25.02.2017
18:47:08
вместо ключей словаря - индексы в массиве

Can
25.02.2017
18:47:26
Так не

Dmitry
25.02.2017
18:47:28
Массив N - не константная, а линейная память

Can
25.02.2017
18:47:36
Размером n то константная
Если ты знаешь н
Давай чтобы проще было скажу что читаем массив из файла
И вся остальная память кроме этого массива должна быть константная
По индексам значений идти интересно но решения в этой стороне я не вижу
Может оно там есть

Marat
25.02.2017
18:50:44
Это линейное время
Линейное время это же время которое увеличивается с размером входных данных, разве нет?

Can
25.02.2017
18:51:11
Ну да
Как раз проход
Или два прохода
Это оно и есть
N проходов по массиву длины N
Это уже не линейное время
А квадратичное

Google

Aldar
25.02.2017
18:52:44
так отсортировать можно за линейное время наверное

Can
25.02.2017
18:53:38
Неа
Сортировка лучшая это n*log n

Aldar
25.02.2017
18:54:18
если n чисел в массиве n размера размешаны
от 1 до n
мы можем для каждого числа сразу его место определить

Can
25.02.2017
18:55:26
И запомнит
Да
Будет доп память
Не подходит

Aldar
25.02.2017
18:55:38
зачем запоминать
проходим по массиву два раза и ставим числа на нужные места

Alexander
25.02.2017
18:57:25
угу, это красиво

Dmitry
25.02.2017
18:57:27
Короче говоря, для одной переменной:
N - Сумма разностей индекса элемента и значения
Не спрашивайте как я это посчитал

Can
25.02.2017
18:58:11
Сумма разностей и

Dmitry
25.02.2017
18:58:32
К примеру 3 0 1
Тогда n = 4

Can
25.02.2017
18:59:14
Ну да

Dmitry
25.02.2017
18:59:22
И тд

Google

Can
25.02.2017
18:59:30
Это правда
Типа сумма чисел от 1 до н
Сумма индексов от 0 до н-1

Dmitry
25.02.2017
18:59:52
По сути то же самое

Can
25.02.2017
18:59:57
Сумма разностей н
Все верно
Но это ток для одного работает

Dmitry
25.02.2017
19:00:48
Да, в том то и дело (
Короче, есть Варик считать все что возможно
Нафигачить тестовых данных, однословный персепторнчик

Admin
ERROR: S client not available

Dmitry
25.02.2017
19:03:25
А потом погонять и посмотреть что сильнее всего влияет

Can
25.02.2017
19:03:26
)
Не
Персептрончик только в линейно разделимые данные умеет
Рандомно перемешанные числа не линейно разделимы

Marat
25.02.2017
19:04:27
проходим по массиву два раза и ставим числа на нужные места
А почему вот это не подходит?

Aldar
25.02.2017
19:04:43
нужно найти числа n+ 1, n+ 2 и удалить и вместо них записать -1, а потом пройтись еще два раза и расставлять числа на индекс соответствующий значению числа, и пропускать -1

Can
25.02.2017
19:04:44
Потому что общо слишком

Google

Can
25.02.2017
19:04:48
Не алгоритм это
Не получается так

Alexander
25.02.2017
19:04:57
очень даже алгоритм

Can
25.02.2017
19:05:03
Ты не знаешь какие числа куда ставить
Ну тут ответ универсальный
Попробуй заполнить
Запрогать
Увидишь)

Alexander
25.02.2017
19:05:26
Ща

Marat
25.02.2017
19:05:39
То есть берем первое число, ставим его на его место по индексу, оттуда берем что было и ставим тоже на его место и тд

Can
25.02.2017
19:05:53
Это ты сортировку описываешь
У тебя вылезут н проходов
А не 2 прохода

Aldar
25.02.2017
19:06:34
кто?

Can
25.02.2017
19:06:34
Потому что ты не знаешь кккие числа ставить на место пока все не поставишь

Marat
25.02.2017
19:07:05

Aldar
25.02.2017
19:07:15
вот смотри
у тебя массив размера n

Dmitry
25.02.2017
19:07:38
Не получается
Так

Marat
25.02.2017
19:07:42
То есть 100 мы ставим на индекс 100

Aldar
25.02.2017
19:07:50
макс число в нем n+ 2

Marat
25.02.2017
19:08:05
a[100]=100