Рубрика «computer science» - 6

Задача: в массиве длиной N найти элемент, который повторяется больше N/2 раз.

Казалось бы, чего тут думать? Возьмём Dictionary<значение элемента, число появлений>, за один проход по массиву сосчитаем появления каждого элемента, потом выберем из словаря искомый элемент. Решение за O(N), куда может быть ещё быстрее?
Поиск часто встречающихся элементов в массиве
Есть один нюанс: для словаря нам потребуется O(N) дополнительной памяти — в несколько раз больше размера исходного массива, и это при реализации словаря хоть хэш-таблицей, хоть деревом. Что будем делать, если наша цель — обработка сигнала неким устройством с маленькой памятью? Массив — замеры уровня сигнала, из которых один — «настоящий» передаваемый уровень, а остальные — шум и помехи. Неужели придётся для определения «настоящего» уровня возиться с хэш-таблицами и деревьями?

К счастью, нет: достаточно O(1) дополнительной памяти, и по-прежнему одного прохода по массиву. Читать полностью »

Computer Science Center. Год номер два
Почти год назад мы объявили об открытии Computer Science Center. Сегодня мы начинаем новый набор, и это хороший повод проанализировать наш старт.

Читать полностью »

Учебный процесс в IT / Магистерские программы Санкт Петербургского Академического университета (бывший АФТУ РАН)
Повсеместный переход на Болонскую систему даёт студентам возможность сменить ВУЗ после получения диплома бакалавра. Однако немногие студенты задумываются об этом. Во многих ВУЗах магистерская программа очень «разрежена»: присутствует множество непрофильных курсов (философия, культурология и т.д.), профильных же очень мало, и для того, чтобы их сдать, достаточно просто появиться на экзамене/зачёте.
Тех, кто ещё сохранил желание учиться, кафедра математических и информационных технологий Академического университета приглашает в магистратуру по тремЧитать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js