﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-一个能思想的人，才真是一个力量无边的人。 —— 巴尔扎克 -随笔分类-公司笔试</title><link>http://www.cppblog.com/IronOxide/category/19850.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 29 Aug 2012 15:09:31 GMT</lastBuildDate><pubDate>Wed, 29 Aug 2012 15:09:31 GMT</pubDate><ttl>60</ttl><item><title>2012年京东商城软件开发校园招聘</title><link>http://www.cppblog.com/IronOxide/archive/2012/08/29/188668.html</link><dc:creator>IronOxide</dc:creator><author>IronOxide</author><pubDate>Wed, 29 Aug 2012 12:59:00 GMT</pubDate><guid>http://www.cppblog.com/IronOxide/archive/2012/08/29/188668.html</guid><wfw:comment>http://www.cppblog.com/IronOxide/comments/188668.html</wfw:comment><comments>http://www.cppblog.com/IronOxide/archive/2012/08/29/188668.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/IronOxide/comments/commentRss/188668.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/IronOxide/services/trackbacks/188668.html</trackback:ping><description><![CDATA[<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt; font-weight: bold">声明：本文版权归IronOxide所有，博客地址：<a href="http://www.cppblog.com/IronOxide/"><span style="color: #3366ff">http://www.cppblog.com/IronOxide/</span></a><br /><br />第一部分 数据结构与算法<br /><br /></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">1. </span><span style="font-family: '宋体'; font-size: 10pt">设数组中初始状态是递增的，分别用堆排序，快速排序，冒泡排序和归并排序方法对其进行排序（按递增顺序），【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">冒泡排序</span><span style="font-family: '宋体'; font-size: 10pt">】最省时间，【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">快速排序</span><span style="font-family: '宋体'; font-size: 10pt">】最费时间。<br /><br /></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">2. </span><span style="font-family: '宋体'; font-size: 10pt">红黑树中已经有n个数据，寻找某个key是否存在的时间复杂度为【</span><span style="font-family: 'Times New Roman'; color: #3366ff; font-size: 10pt">O(logn)</span><span style="font-family: '宋体'; font-size: 10pt">】。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt"><br />3. </span><span style="font-family: '宋体'; font-size: 10pt">7个相同的球放到4个不同的盒子里的，每个盒子至少放一个，方法有【</span><span style="font-family: 'Times New Roman'; color: #3366ff; font-size: 10pt">20</span><span style="font-family: '宋体'; font-size: 10pt">】种。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt"><br />4. </span><span style="font-family: '宋体'; font-size: 10pt">两个无环点链表L1，L2，其长度分别为m和n(</span><span style="font-family: 'Times New Roman'; font-size: 10pt">m&gt;n</span><span style="font-family: '宋体'; font-size: 10pt">)</span><span style="font-family: 'Times New Roman'; font-size: 10pt">,</span><span style="font-family: '宋体'; font-size: 10pt">判定</span><span style="font-family: 'Times New Roman'; font-size: 10pt">L1,L2</span><span style="font-family: '宋体'; font-size: 10pt">是否相交的时间复杂度是【</span><span style="font-family: 'Times New Roman'; color: #3366ff; font-size: 10pt">O(m+n)</span><span style="font-family: '宋体'; font-size: 10pt">】，空间复杂度是（不包括原始链表</span><span style="font-family: 'Times New Roman'; font-size: 10pt">L1,L2</span><span style="font-family: '宋体'; font-size: 10pt">）【</span><span style="font-family: 'Times New Roman'; color: #3366ff; font-size: 10pt">O(1)</span><span style="font-family: '宋体'; font-size: 10pt">】。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt"><br />5. </span><span style="font-family: '宋体'; font-size: 10pt">平面上有两个n条直线两两相交，但没有三条直线交与一点，问这n条直线把平面划分成【</span><span style="font-family: 'Times New Roman'; color: #3366ff; font-size: 10pt">(n*n+n+2)/2</span><span style="font-family: '宋体'; font-size: 10pt">】个区域。<br /><br /></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt; font-weight: bold">第二部分 软件工程与数据库</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt"><br />在京东商城的商品展示页面下方，总会有一些关于本商品的客户评论信息。模仿该评论模块，有如下三个表：</span><span style="font-family: 'Times New Roman'; font-size: 10pt">price(</span><span style="font-family: '宋体'; font-size: 10pt">商品表</span><span style="font-family: 'Times New Roman'; font-size: 10pt">)</span><span style="font-family: '宋体'; font-size: 10pt">，userinfo(用户表),threads(评论主题表)<br /><br /></span></p><font size="3"><span style="line-height: normal"><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/ironoxide/tablesmall.jpg" /><br /><br /></span></font>
<p style="margin-top: 0pt; margin-bottom: 0pt"></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">1.</span><span style="font-family: '宋体'; font-size: 10pt">请画出以上三张表对应实体的ER图（实体字段标明主键外键即可，用箭头表示）</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt"><br />2.</span><span style="font-family: '宋体'; font-size: 10pt">在</span><span style="font-family: 'Times New Roman'; font-size: 10pt">product</span><span style="font-family: '宋体'; font-size: 10pt">表中加入一条新纪录</span><span style="font-family: 'Times New Roman'; font-size: 10pt">(1004,'</span><span style="font-family: '宋体'; font-size: 10pt">京东空调</span><span style="font-family: 'Times New Roman'; font-size: 10pt">',3000).</span><span style="font-family: '宋体'; font-size: 10pt">请写出对应的</span><span style="font-family: 'Times New Roman'; font-size: 10pt">SQL</span><span style="font-family: '宋体'; font-size: 10pt">语句。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: 'Times New Roman'; color: #3366ff; font-size: 10pt">INSERT INTO product(Pid,Pname,Price) VALUES(1004,'</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">京东空调</span><span style="font-family: 'Times New Roman'; color: #3366ff; font-size: 10pt">',3000);</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt"><br />3.</span><span style="font-family: '宋体'; font-size: 10pt">更新</span><span style="font-family: 'Times New Roman'; font-size: 10pt">product</span><span style="font-family: '宋体'; font-size: 10pt">表中</span><span style="font-family: 'Times New Roman'; font-size: 10pt">pid</span><span style="font-family: '宋体'; font-size: 10pt">为1001的商品的价格为3666。请写出对应的SQL语句。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: 'Times New Roman'; color: #3366ff; font-size: 10pt">UPDATE product SET Price=3666 WHERE pid=1001;</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt"><br />4.</span><span style="font-family: '宋体'; font-size: 10pt">在</span><span style="font-family: 'Times New Roman'; font-size: 10pt">product</span><span style="font-family: '宋体'; font-size: 10pt">表中查询</span><span style="font-family: 'Times New Roman'; font-size: 10pt">pname</span><span style="font-family: '宋体'; font-size: 10pt">中带有</span><span style="font-family: 'Times New Roman'; font-size: 10pt">"</span><span style="font-family: '宋体'; font-size: 10pt">京</span><span style="font-family: 'Times New Roman'; font-size: 10pt">"</span><span style="font-family: '宋体'; font-size: 10pt">的商品。请写出对应的SQL语句。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: 'Times New Roman'; color: #3366ff; font-size: 10pt">SELECT * FROM product WHERE pname LIKE '%</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">京</span><span style="font-family: 'Times New Roman'; color: #3366ff; font-size: 10pt">%';</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt"><br />5.</span><span style="font-family: '宋体'; font-size: 10pt">查询</span><span style="font-family: 'Times New Roman'; font-size: 10pt">product</span><span style="font-family: '宋体'; font-size: 10pt">表中</span><span style="font-family: 'Times New Roman'; font-size: 10pt">price</span><span style="font-family: '宋体'; font-size: 10pt">在1000.0与3000.0之间的所有商品并按照价格降序排序。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: 'Times New Roman'; color: #3366ff; font-size: 10pt">SELECT * FROM product WHERE price&lt;3000.0 AND price&gt;1000.0 ORDER BY price DESC;<br /><br /></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt; font-weight: bold">第三部分 数字与逻辑</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt"><br />1.</span><span style="font-family: '宋体'; font-size: 10pt">数字与逻辑<br /><br /></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">A</span><span style="font-family: 'Times New Roman'; font-size: 10pt">. 0 2 6 14 </span><span style="font-family: '宋体'; font-size: 10pt">【</span><span style="font-family: 'Times New Roman'; color: #3366ff; font-size: 10pt">30</span><span style="font-family: '宋体'; font-size: 10pt">】 </span><span style="font-family: 'Times New Roman'; font-size: 10pt">62</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: 'Times New Roman'; font-size: 10pt">B. 11 22 33 45 </span><span style="font-family: '宋体'; font-size: 10pt">【</span><span style="font-family: 'Times New Roman'; color: #3366ff; font-size: 10pt">57</span><span style="font-family: '宋体'; font-size: 10pt">】 </span><span style="font-family: 'Times New Roman'; font-size: 10pt">71</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: 'Times New Roman'; font-size: 10pt">C. 1 7 10 </span><span style="font-family: '宋体'; font-size: 10pt">【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">不知道</span><span style="font-family: '宋体'; font-size: 10pt">】 </span><span style="font-family: 'Times New Roman'; font-size: 10pt">3 4 -1</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt"><br />2.</span><span style="font-family: '宋体'; font-size: 10pt">逻辑推理</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">A</span><span style="font-family: 'Times New Roman'; font-size: 10pt">.</span><span style="font-family: '宋体'; font-size: 10pt">你让工人为你工作7天，给工人的回报是1根金条。金条平分成相连的7段，你必须在每天结束时给他们1段金条，如果只许你两次把金条弄断，你如何给你的工人付费。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt; font-weight: bold">解：</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">假设金条长度为7，将金条分成7=1+2+4（实际上就是2的幂）。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">第一天，把长度为1的小段给工人。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">第二天，把长度为2的小段给工人，并收回长度为1的小段。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">第三天，把长度为1的小段给工人。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">第四天，把长度为4的小段给工人，并收回长度为1和长度为2的小段。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">第五天，把长度为1的小段给工人。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">第六天，把长度为2的小段给工人，并收回长度为1的小段。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">第七天，把长度为1的小段给工人。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt"><br />B</span><span style="font-family: 'Times New Roman'; font-size: 10pt">.</span><span style="font-family: '宋体'; font-size: 10pt">有7克，2克砝码各一个，天平一只，如何只用这些物品3次将140的盐分为50，,90克各一份？</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt; font-weight: bold">解：</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">答案有多解：</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">步骤一：把2克的砝码放到天平一段，然后把140克盐往天平两端加，直到平衡。这样就把所有的盐分成69克和71克两部分。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">步骤二：把7克砝码和2克砝码放到天平左端，把71克盐网天平两端加，直到平衡。这样左端的盐重31克，右端的盐重40克。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">步骤三：把31克盐和69克盐合成一堆，往天平上加，直到平衡。这样就把100克盐分成了两个50克，把上面称出的40克和一个50克合并就得90克，剩余的就是50克了。<br /><br /></span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt; font-weight: bold">第四部分 其他</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt"><br />1.</span><span style="font-family: '宋体'; font-size: 10pt"> 线程是【</span><span style="font-family: Arial; color: #3366ff; font-size: 10pt; background-origin: initial; background-clip: initial">进程</span><span style="font-family: '宋体'; font-size: 10pt">】中某个单一顺序的控制流。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">参考资料：</span><a href="http://baike.baidu.com/view/1053.htm"><span style="font-family: 'Times New Roman'; color: #0000ff; font-size: 10pt">http://baike.baidu.com/view/1053.htm</span></a> </p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">多线程可以让同一个【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">进程</span><span style="font-family: '宋体'; font-size: 10pt">】的不同部分【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">并发</span><span style="font-family: '宋体'; font-size: 10pt">】执行，从而实现加速。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">参考资料：</span><a href="http://baike.baidu.com/view/65706.htm"><span style="font-family: 'Times New Roman'; color: #0000ff; font-size: 10pt">http://baike.baidu.com/view/65706.htm</span></a> </p>
<p style="margin-top: 0pt; margin-bottom: 0pt"></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt"><br />2.</span><span style="font-family: '宋体'; font-size: 10pt">死锁是指【</span><span style="font-family: Arial; color: #3366ff; font-size: 10pt; background-origin: initial; background-clip: initial">两个或两个以上的进程</span> <span style="font-family: '宋体'; font-size: 10pt">】在执行过程中，因争夺资源二造成的一种【</span><span style="font-family: Arial; color: #3366ff; font-size: 10pt; background-origin: initial; background-clip: initial">互相等待</span> <span style="font-family: '宋体'; font-size: 10pt">】现象，若无外力作用，它们将无法推进下去。内存中造成死锁的原因有【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">可剥夺资源和不可剥夺资源</span><span style="font-family: '宋体'; font-size: 10pt">】，【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">竞争不可剥夺资源</span><span style="font-family: '宋体'; font-size: 10pt">】，【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">竞争临时资源</span><span style="font-family: '宋体'; font-size: 10pt">】。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">参考资料：</span><a href="http://baike.baidu.com/view/121723.htm"><span style="font-family: 'Times New Roman'; color: #0000ff; font-size: 10pt">http://baike.baidu.com/view/121723.htm</span></a> </p>
<p style="margin-top: 0pt; margin-bottom: 0pt"></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: 'Times New Roman'; font-size: 10pt"><br />3.</span><span style="font-family: 'Times New Roman'; font-size: 10pt">ISO</span><span style="font-family: '宋体'; font-size: 10pt">网络模型图与</span><span style="font-family: 'Times New Roman'; font-size: 10pt">TCP/IP</span><span style="font-family: '宋体'; font-size: 10pt">网络模型图对应关系为</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">应用层</span><span style="font-family: '宋体'; font-size: 10pt">】，【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">表示层</span><span style="font-family: '宋体'; font-size: 10pt">】，【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">会话层</span><span style="font-family: '宋体'; font-size: 10pt">】对应【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">应用层</span><span style="font-family: '宋体'; font-size: 10pt">】</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">传输层</span><span style="font-family: '宋体'; font-size: 10pt">】对应【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">传输层</span><span style="font-family: '宋体'; font-size: 10pt">】</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">网络层</span><span style="font-family: '宋体'; font-size: 10pt">】对应【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">网际层</span><span style="font-family: '宋体'; font-size: 10pt">】</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">数据链路层</span><span style="font-family: '宋体'; font-size: 10pt">】【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">物理层</span><span style="font-family: '宋体'; font-size: 10pt">】对应【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">网络接口</span><span style="font-family: '宋体'; font-size: 10pt">】</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">参考网址</span><a href="http://blog.csdn.net/yuliu0552/article/details/6711659"><span style="font-family: 'Times New Roman'; color: #0000ff; font-size: 10pt">http://blog.csdn.net/yuliu0552/article/details/6711659</span></a> <br /><br /></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><img border="0" alt="" src="http://www.cppblog.com/images/cppblog_com/ironoxide/untitled.png" /><br /><br /></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">4.</span><span style="font-family: '宋体'; font-size: 10pt">你所见过的最大影子是【</span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">月亮的影子</span><span style="font-family: '宋体'; font-size: 10pt">】。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt"><br />5.</span><span style="font-family: '宋体'; font-size: 10pt">京东商城的商品搜索功能是整个网站架构中非常重要的一个模块。当用户在搜索栏中写入他们想要搜索的关键字时，往往会有一些热门的关键词出现在提示框中。对于这一功能的实现，你认为需要：</span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt"><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">1.用户输入一些关键字查询时，将用户的相关信息(ip,cookie,keyword,username etc.)，暂时存储。（临时对象，临时文件等等）。</span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt"><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">2.定时从暂时缓存处，一次行读取，写入到数据库中。</span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt"><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">3.记录下来关键字后，需要定时从数据库中提取出来。</span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt"><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">4.数据库存储建议采用Oracle，因为这个数据量会增加很快，且很大。最好采用分表处理。</span></p>
<p style="margin-top: 0pt; text-indent: 21pt; margin-bottom: 0pt"><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">5.定时生成相关关键字页面，可以与定时关键字写入数据库放在一起</span><span style="font-family: '宋体'; font-size: 10pt">。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">由于关键词的存储量非常大，在你看来这么关键词该：</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt"></span><span style="font-family: '宋体'; color: #3366ff; font-size: 10pt">需要将用户关键字记录表分解处理.即每个月的第一天的零点生成一个新的数据库表，名字(user_key_200604),名字后面的数字是年月（六位数字）。用户每次查询时，记录到当月的记录表中，（以后提供的用户的查询日志，默认只提供当月的查询记录）。</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">参考资料：</span><a href="http://blog.sina.com.cn/s/blog_53fc0ac20100pr7j.html"><span style="font-family: 'Times New Roman'; color: #0000ff; font-size: 10pt">http://blog.sina.com.cn/s/blog_53fc0ac20100pr7j.html</span></a> <br /><br /></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt; font-weight: bold">第五部分 选答题（任选一题作答，使用JAVA</span><span style="font-family: 'Times New Roman'; font-size: 10pt; font-weight: bold">,C#,C++</span><span style="font-family: '宋体'; font-size: 10pt; font-weight: bold">等主流语言编写）</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt"><br />1.</span><span style="font-family: '宋体'; font-size: 10pt">求给定数组中最大的K个数</span><span style="font-family: 'Times New Roman'; font-size: 10pt">function array[] findK(array[] a , int k)</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">解：</span><a href="http://blog.csdn.net/v_JULY_v/article/details/6370650"><span style="font-family: 'Times New Roman'; color: #0000ff; font-size: 10pt">http://blog.csdn.net/v_JULY_v/article/details/6370650</span></a> </p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt"><br />2.</span><span style="font-family: '宋体'; font-size: 10pt">求给定数组中存在的和为最大的子数组，子数组中各元素要求是在原数组中连续的部分</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">（</span><span style="font-family: 'Times New Roman'; font-size: 10pt">3,-2,3,4,5,-8</span><span style="font-family: '宋体'; font-size: 10pt">）</span></p>
<p style="margin-top: 0pt; margin-bottom: 0pt"><span style="font-family: '宋体'; font-size: 10pt">解：</span><a href="http://blog.csdn.net/v_july_v/article/details/6444021"><span style="font-family: 'Times New Roman'; color: #0000ff; font-size: 10pt">http://blog.csdn.net/v_july_v/article/details/6444021</span></a> </p>
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000">/*</span><span style="color: #008000"><br />&nbsp;&nbsp;dp[i]&nbsp;=&nbsp;max(dp[i-1]+a[i]&nbsp;,a[i]);<br />&nbsp;&nbsp;Time&nbsp;&nbsp;O(n)<br />&nbsp;&nbsp;Space&nbsp;O(n)<br /></span><span style="color: #008000">*/</span><span style="color: #000000">&nbsp;<br /></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;MaxSubSeq(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;a[]&nbsp;,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;n&nbsp;,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">left&nbsp;,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">right&nbsp;,&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">&amp;</span><span style="color: #000000">answer){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;the&nbsp;start&nbsp;position&nbsp;is&nbsp;left&nbsp;and&nbsp;the&nbsp;end&nbsp;position&nbsp;is&nbsp;right.&nbsp;sum[leftrgiht]&nbsp;=&nbsp;answer&nbsp;&nbsp;</span><span style="color: #008000"><br /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;previous&nbsp;,&nbsp;current&nbsp;,&nbsp;preBegin&nbsp;,&nbsp;preEnd&nbsp;,&nbsp;curBegin&nbsp;,&nbsp;curEnd;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;previous&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;answer&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;a[</span><span style="color: #000000">0</span><span style="color: #000000">]&nbsp;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;preBegin&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;preEnd&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">&nbsp;;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;left&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;right&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">&nbsp;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">for</span><span style="color: #000000">(</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;i&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">1</span><span style="color: #000000">&nbsp;;&nbsp;i&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;n&nbsp;;&nbsp;</span><span style="color: #000000">++</span><span style="color: #000000">&nbsp;i){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(previous&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">&nbsp;){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;current&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;a[i]&nbsp;;&nbsp;curBegin&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;curEnd&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;i&nbsp;;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span><span style="color: #0000ff">else</span><span style="color: #000000">{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;current&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;previous&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;a[i]&nbsp;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;curBegin&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;preBegin&nbsp;;&nbsp;curEnd&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;i&nbsp;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;previous&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;current&nbsp;&nbsp;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;preBegin&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;curBegin&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;preEnd&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;curEnd&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">(answer&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">&nbsp;current&nbsp;){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;answer&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;current&nbsp;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;left&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;curBegin&nbsp;;&nbsp;&nbsp;right&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;curEnd&nbsp;;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}</span></div>
<p style="margin-top: 0pt; margin-bottom: 0pt"><br /></p><img src ="http://www.cppblog.com/IronOxide/aggbug/188668.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/IronOxide/" target="_blank">IronOxide</a> 2012-08-29 20:59 <a href="http://www.cppblog.com/IronOxide/archive/2012/08/29/188668.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>