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

Материал из Star-Staff
Перейти к: навигация, поиск
Строка 25: Строка 25:
 
     search_base_fill(q, CandidateList, LongList);
 
     search_base_fill(q, CandidateList, LongList);
 
     // работные сайты
 
     // работные сайты
     search_sites_fill(q, CandidateList);
+
     search_sites_fill(q, CandidateList, LongList);
     // форумы и сообщества
+
     // соц.сети, форумы и сообщества
     post_forums(q);
+
     search_snfc(q, CandidateList, LongList);
  
 
     list<candidate>::iterator i;
 
     list<candidate>::iterator i;

Версия 20:02, 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);
    }
  }
}