Я не хочу работать в своей конторе. Мне приходится часто делать совсем не то, что я бы хотел. И совсем не то, из чего можно извлечь реальную пользу. Я бесполезный. А еще в соседних секторах работают мудаки. Хоть в чем-то мне повезло, и я сижу в комнате со взрослыми серьезными мужиками. Им на меня просто похер.
Сделал вариант макс-кучи в массиве. Спасибо хорошей статье на хабре. Писал с malloc/realloc, в результате тест на степике сломался где-то в heap. Наверное, что-то связанное с фрагментацией памяти. Потом заметил в условии ограничение на длину входных данных, заменил массив на статический, и все заработало. Ура, что ли. Там впереди разбор задач. Мб объяснение кода Хаффмана на С++ даст идейку и мне, на С.
Онлайн курс продолжает не нравиться Как уже говорил, в введении нет основ, при этом в дальнейшем лектор вовсю оперирует терминами вроде "инвариант цикла". Построение материала по сложности тоже некорректное. Сначала код Хаффмана, затем очередь с приоритетами. Хотя в реализации первого требуется второе. Ну и тесты. Отсутствие входных данный, на которых ломается алгоритм, преподаватели объяснили тем, что иначе задача решается перебором. Я правда неопытный программист, и потому не понимаю, как можно алгоритм написать путем перебора входных данных. Наличие тестов времени вызывает вопрос: этот курс точно рассчитан на неподготовленного читателя? Вот как раз тема с очередью. Нужно вставлять числа и извлекать максимальное. Ограничений на реализацию нет. Написал вариант через двусвязный список, поскольку со списком я худо-бедно умею работать. Не проходит тест времени. Ок, понятно. Много времени уходит на вставку в конец и поиск максимума. Переписал со вставкой максимума в корень, извлекается теперь всегда первый. Снова не проходит тест времени. А вот тут хз. Извлечение - константное время (поменять местами несколько указателей). Вставка - мне тяжело оценить, но должна совпадать с первым вариантом только при сортировке по убыванию, в остальных лучше. Буду пробовать через кучу, только сначала найду нормальное описание этой структуры. Там вставка вроде log(N). И нет, я не жалуюсь.
В общем, не могу сделать код Хаффмана. Уперся в проблему вставки нового узла в дерево. Для некоторых узлов нет места в дереве. Перепробовал штуки три разных варианта реализации, увы, терпение кончается. Может быть потом, когда поднаберусь опыта.
Это какое-то помешательство. Мне одновременно хочется сесть обратно за решение задачи и взять гитару или палочки. В голове будто костер. Не могу успокоиться.
У меня есть желание - сделать проект для системы автополива. Пэт-проект, как бы. Есть человек, который сделает платы. Надо только потянуть себя на ийцы, купить недостающие ингредиенты и научиться их варить. Но ведь я ленивая мразь и тыщи причин, чтобы не делать. Поэтому досмотрел "Стар против сил зла" и тихо грущу от напрочь испорченного четвертого сезона.
Сегодня я решил еще две задачи: непрерывный рюкзак (два часа) и поиск различных натуральных слагаемых (около сорока минут). Потом посмотрел про коды Хаффмана, на реализации которых и застрял. Потому что после задач в одно действие резкий переход к разработке программы с кучей функций, деревом и очередью (которые в курсе объяснялись ну вот никак). И в целом я могу это сделать, поскольку деревья и очереди видел в Кормене, но возникает сомнение. А может я неправильно понимаю задачу? Может усложняю? Пока накидал примерный каркас. Если за вечер новых мыслей не возникнет, то сделаю по максимуму.
Пять часов решал задачу на жадный алгоритм. Решение нашлось за последние десять минут. Фигня-то, надо было просто сделать правильный жадный выбор. Пфффф.
Начал курс на степике по алгоритмам. Первые впечатления: - начать надо было с основных определений. Что за T(n), почему от n и где связь с временем оговорено не явно. Зато сразу пример, почему не знать алгоритмы плохо. - от решения задач странное чувство, что что-то не так. Система дает зеленый свет, но... Вот что-то царапает душу. А, точно. Коробит, что код должен удовлетворять проверке системой, а не правильному решению. Аналогичное чувство было от codewars. - задачи повышенной сложности сложные. Я идиот? - можно поделиться решением. Вдруг кто прокомментирует (нет)?
Уволился старший коллега. Теперь ко мне ходят странные люди, задают странные вопросы и хотят, чтобы я делал странные вещи. Забавно оставаться ведущим по заказу, зная о заказе только код, и то не весь, ибо не мой? Нет. Это нихера не забавно.
Я увяз. Надо корректировать подход. 1) Мало практики. Хз, хоть codewars юзать. 2) Сделать опись домашних железок. И писать либы для них. 3) Кормен не для моих мозгов. Либо я его читаю, пробрасывая часовые затупы на каждом параграфе, либо откладываю подальше и ищу книгу попроще. Хз, легче ли, Вирт, Скиена, МакКоннел на выбор. Следом Седжвик. 4) "CC" вполне вечерком можно. 5) Менторменторменторменторменторментор. 6) ААААААААААААааааааааа. 7) Изучить стандартную библиотеку C. Плоджер и исходники.
Мне напечатали на 3d принтере куски модели. Всего за тыщу. Нужно болтов/винтов купить, обработать и собрать. _ Внезапно, сотрудник, рассказавший мне про калистенику, год занимается по программе, которую я начал три месяца назад. Совпадение.
Кормен идет очень туго. Прочел примерно десятую часть, понял десятую часть от прочитанного. В основном проблемы либо с оценкой времени алгоритмов. Вот эти вот тета, омега. Интуитивно понятно, но сам не могу. Либо с упражнениями, требующими хз какую соображалку. От задач прям в депрессию вгоняет. А еще я больше читаю, чем пишу код. Писать метод Штрассена как-то не тянет. Хотя метод понравился. Хочу сделать что-нибудь с экраном, желательно тач, и блютуз. А алгоритмы не хочу. Начал "Совершенный код". Если там не будет кучи математики, пойдет на вечернее чтение. _ Почитал блог какого-то успешного программиста. Сначала было норм и интересно, потом нашел кучу его статей с критикой джунов. Впечатление, что надо сразу мидами рождаться. А то одни убытки от этих джунов и разорение. Я с этим в какой-то мере согласен, но обвинять джуна в том, что ему надо спрашивать у старших совета и, вот так неожиданность, получать ответы - это как-то странно звучит. Или я опять что-то не понимаю?