查询建议

开源查询推荐系统源代码阅读笔记

http://d.download.csdn.net/down/1056257/WUTAOWUTAO

// 根据index更新token_info(int token_id, int value),图中可能token_max会变化,size不变或者加8,

// 保证TokenInfo再增加2*sizeof(int),足够新增一个token信息

int update_token_info(int* token_info, int size, int index, int* token_max)

{

int times = 0;

扫描二维码关注公众号,回复: 828918 查看本文章

int* end_token = token_info + size/sizeof(int);

// TODO: bsearch 

for (; token_info < end_token; token_info += 2)

{

if (index > *token_info)// index在后面

{

continue;

}

else if (index == *token_info)// index就是此项

{

times = *(token_info+1) + 1;

*(token_info+1) = times;

if (times > *token_max)

{

*token_max = times;

}

return size;

}

else if ( index < *token_info )// 插入index

{

memmove((void*)(token_info+2), (void*)(token_info), 4*(end_token-token_info));

*token_info = index;

*(token_info+1) = 1;

return size + 8;

}

cout << *token_info << endl;

}

// 增加到最后

*token_info = index;

*(token_info+1) = 1;

return size + 8;

}

猜你喜欢

转载自chuqq.iteye.com/blog/585289