Algorithm — различия между версиями

Материал из Star-Staff
Перейти к: навигация, поиск
Строка 2: Строка 2:
  
  
И поэтому, несмотря на то что мы фанаты open-source, здесь мы выкладываем алгоритм нескольколетней давности.
+
И поэтому, несмотря на то что мы фанаты open-source, здесь мы выкладываем алгоритм нескольколетней давности (всё таки это наш "хлеб").
С тех пор мы сильно развились, претерпел существенные изменения, был круто оптимизирован. Мы придумали к нему много хороших эвристик (переборных и не только).
+
 
Но тем не менее общий каркас и модельный пример этот алгоритм тоже можно использовать.
+
С тех пор мы сильно развились, он претерпел существенные изменения, был круто оптимизирован. Мы придумали к нему много хороших эвристик (переборных и не только).
 +
Но тем не менее общий каркас и модельный пример этот алгоритм можно использовать.
  
  

Версия 20:03, 21 декабря 2011

О, это Алгоритм, который волнует многие прогрессивные умы человечества. :)


И поэтому, несмотря на то что мы фанаты open-source, здесь мы выкладываем алгоритм нескольколетней давности (всё таки это наш "хлеб").

С тех пор мы сильно развились, он претерпел существенные изменения, был круто оптимизирован. Мы придумали к нему много хороших эвристик (переборных и не только). Но тем не менее общий каркас и модельный пример этот алгоритм можно использовать.


Алгоритм

#include <наша_мега_база_кандидатов>
#include <nanimator>
#include <list>

void Nanimator::CandidateSearch(Query q, Client clinet) {
  bool кандидат_найден = false;
  list<candidate> CandidateList;
  list<candidate> LongList;

  while (!кандидат_найден)
  {
    // наша база
    search_base_fill(q, CandidateList, LongList);
    // работные сайты
    search_sites_fill(q, CandidateList, LongList);
    // соц.сети, форумы и сообщества
    search_snfc(q, CandidateList, LongList);

    list<candidate>::iterator i;
    for (i = LongList.begin(); i != LongList.end(); i++) 
    {
      // рекомендации 
      ask_for_recommendations(*i, CandidateList);
    }

    candidate_sort(CandidateList);
    Response r;     
    r = candidate_send(CandidateList, client);
    if (r.hire)
    {
      кандидат_найден = true;
    }
    else
    {
      q = correction(q, r);
    }
  }
}