Ответы пользователя по тегу Алгоритмы
  • Алгоритм поиска последовательности выпадения числа. Возможно ли такое реализовать?

    taliban
    @taliban
    php программист
    да, возможно, если числа не случайны, значит есть алгоритм по которому они выпадают, а если что-то уже есть, то его можно повторить имея набор данных для примера.

    зы: есть только один ньюанс, алгоритм может быть основан на действиях которые вы можете не знать, например действия других пользователей
    Ответ написан
    3 комментария
  • Способы сортировки смешанных данных массива?

    taliban
    @taliban
    php программист
    А лично вам что не нравится в этом решении? Вы ведь не каждую фукнцию спрашиваете. Значит конкретно здесь вас что-то напрягает.
    Ответ написан
  • Как работает IndexOf в C#?

    taliban
    @taliban
    php программист
    По мне так это простейший алгоритм, так как строки ни сортированы, и никак не связаны. В сортированных/связанных масивах все по другому думаю, там уже в зависимости от структуры метод переопределен скорее всего.
    function indexOf(neededChar)
    {
        for( q = 0; q < string.length; q++ )
        {
            if( string[q] === neededChar )
            {
                return q;
            }
        }
        return -1;
    }
    
    Ответ написан
    Комментировать
  • Как строить асинхронное приложение?

    taliban
    @taliban
    php программист
    ru.wikipedia.org/wiki/Callback_(программирование) Не в паттернах дело, грубо говоря при начале какого-то действия, отдавайте в него же калбак, который должен выполниться по завершению, и при выполнении калбака смотрите, нужно ли еще это действие. Так приложение будет работать асинхронно, и не будет перетирать данные других действий, если человек недождался предидущего и нажал что-то новое.
    Ответ написан
    7 комментариев
  • Подскажите интересную научную статью об алгоритмах

    taliban
    @taliban
    php программист
    Забейте на пхп, переводите алгоритмы, либо высокие нагрузки. Это позновательней, интересней и полезней.
    Ответ написан
    2 комментария
  • Проектирую "Ленту событий" для социального проекта?

    taliban
    @taliban
    php программист
    Есть такая вешь как кеш. Кеш бывает разных видов, это не только выборка хранящаяся в файлике под рукой. Банальный пример карма на хабре. Я точно уверен что у них в базе хранится все данные, кто кому куда сколько раз ткнул плюсик или минусик, но видим мы лишь 3 (+4- 1). Своеобразный кеш нужных данные в отдельном месте. Вынесите связи отдельно специально для это й ленты, дублируйте данные, не бойтесь, дубли иногда помогают в производительности. Допустим сделайте для начала табличку активности:
    id, user_id, event_desc, event_date
    И при каждой активности заносите сюда данные, эта до невозможности простая табличка может одним запросом вывести всю активность пользователя в примитивном виде. Дальше уже развивайте мысль как удобно =)
    Ответ написан
  • Вычисление повторяемости событий в календаре

    taliban
    @taliban
    php программист
    Удобней всего наверно сделать определенные промежутки, и для каждого делать отдельную функцию возвращающую следующую дату:
    getNextWorkDay(date), getNextWeekDay(date), getNextFirstDayOfMonth(date) итд.
    + Простые задачи на много проще универсальных
    + Это будет быстрей универсальной задачи
    + Это легче поддерживать
    — Все промежутки нужно будет описывать отдельно
    Ответ написан
  • Алгоритм френдленты

    taliban
    @taliban
    php программист
    1. Вставка на 1000 записей произойдет мгновенно, потому как вам надо не все данные хранить а лишь айдишники.
    2. Поэксперементируйте с запросами:
      2а. выбрать айдишники всех друзей
      2б. выбрат по айди всех друзей (да да, как бы смешно не звучало)
      2в. выбрать активность ленты
    Иногда такие 3 запросы работают быстрей чам один джойн
    3. «они могут захотеть *неожиданно* посмотреть посты из френдленты с 1000 по 1010.» — забейте
    4. Если сообщения не изменяемые, то нет смысла сортировать по дате, первичный числовой ключ надеюсь есть? он всегда больше у последних записей
    Это все что сходу в голову пришло.
    Ответ написан
    Комментировать
  • Быстрый алгоритм поиска

    taliban
    @taliban
    php программист
    В каждом языке есть функция сортировки которая принимает одним параметром массив, а вторым функцию обработчик, которая должна вернуть -1/0/1 и в зависимости от этого результата сортировка происходит как хочет разработчик. Почему бы Вам не воспользоваться этим?
    Ответ написан
  • Алгоритм пагинации?

    taliban
    @taliban
    php программист
    И что именно Вам кажется некрасивым? Вариант рабочий? Работает без ошибок? Вам наверно больше нет работы кроме как «делать красиво» из стандартного алгоритма пагинации. Если Вам уж очень сильно хочется сделать «красиво» можете заменить один из ифов (который просчитывает страницы) на php.net/manual/en/function.range.php, и фор на implode + array_map. Кода будет меньше, но поверьте, то что у Вас есть сейчас — стандартный код, так пишут почти все, и так проще будет Вам и другим менять его в будуйщем.
    Ответ написан
    1 комментарий
  • Как найти уникальные последовательности символов в двух строках?

    taliban
    @taliban
    php программист
    Есть вариант в лоб, для ленивых:
    есть два цикла, первый проходит по первой строке, второй по второй
    на каждую итерацию первого цикла нужно проверять вторую строку с начала
    при совпадении символов, второй цикл начинается с позиции равной количеству совпаденных символов
    наиболее длинное совпадение сохраняем и заменяем ранее сохраненное, если оно есть
    !!!
    PROFIT

    если кто не понял
    abcd
    cd
    a=c — no
    b=c — no
    c=c — yes
    d=d — yes
    max = cd

    Это тупейший поиск похожих вхождений, как найти разницу думаю не составит труда =)
    Ответ написан
  • Что должен знать настоящий программист?

    taliban
    @taliban
    php программист
    Это на самом деле риторический вопрос, нет определенных критериев, в некоторых яп нет замыканий, но там есть настоящие программисты.
    Настоящий программист должен уметь думать и интересоваться своей работой. Если есть эти два критерия, то он сам найдет и замыкания, и бинарный поиск итд.
    Ответ написан
    Комментировать