第2次实验——算法基本功 与 综合思考

(3)算法综合实践——搜索引擎

(一)工作原理
第一步:爬行
搜索引擎是通过一种特定规律的软件跟踪网页的链接,从一个链接爬到另外一个链接,像蜘蛛在蜘蛛网上爬行一样,所以被称为“蜘蛛”也被称为“机器人”。搜索引擎蜘蛛的爬行是被输入了一定的规则的,它需要遵从一些命令或文件的内容。
第二步:抓取存储
搜索引擎是通过蜘蛛跟踪链接爬行到网页,并将爬行的数据存入原始页面数据库。其中的页面数据与用户浏览器得到的HTML是完全一样的。搜索引擎蜘蛛在抓取页面时,也做一定的重复内容 检测,一旦遇到权重很低的 网站上有大量抄袭、采集或者复制的内容,很可能就不再爬行。
第三步:预处理
搜索引擎将蜘蛛抓取回来的页面,进行各种步骤的预处理。
第四步:排名
用户在搜索框输入关键词后,排名程序调用索引库数据,计算排名显示给用户,排名过程与用户直接互动的。但是,由于搜索引擎的数据量庞大,虽然能达到每日都有小的更新,但是一般情况搜索引擎的排名规则都是根据日、周、月阶段性不同幅度的更新。
      (二)搜索引擎岗位要求

       1、负责公司网站 SEO 优化工作;

  2、根据要求提升站点相关关键词排名 ;

  3、负责实施项目优化方案,并达到目标营销效果;

  4、评估、分析网站的关键词等,根据项目需要制定核心的关键词方案;

  5、为客户的Google AdWords广告帐户提供广告方案;

  6、根据客户市场投放策略,制定搜索引擎投放策略(包含百度、 Google 等);

  7、根据投放策略,制定投放方案并负责实施投放计划;

  8、根据广告投放数据调整投放策略并制定投放方案,和团队一起执行投放计划;

  9、通过广告优化对账户进行调整和延展,提升广告效果;

  10、每周或每月和客户沟通,进行投放分析,解决客户问题;

  11、定期为客户制定报告并能够识别和处理异常数据;

  12、管理及培训自己的团队,提高工作效率;

  13、日常后台维护,网站改版,升级,添加模块等;

  14、关注行业发展最新动态;

    15、理解客户在线营销的目标与目的,挖掘客户需求;

  16、积极收集、总结客户行业特点,制定行业搜索营销计划。


    (2)经典算法面试题

输入一个长度为n的数组,每个元素都不一样,并且分布在[1,n+1]区间里。找到那个missing的数字。

例如输入【1,2,3,4,5】,n=5,n+1=6,返回6,输入【2,4,6,7,1,3】,n=6,n+1=7,返回5。

这n个数字可以是无序的。

我的解法

//without checking arguments

int find(int[] a, int n)

{

                int sum = (int)(((n+1)/2.0)*(n+2));

                for (int i=0; i<n;i++){sum -=a[i];}

                return sum;

}

但是所有数字相加可能overflow,所以更好的解法是

int find(int[] a, int n)

{

                int temp;

                for (int i=1; i<=n+1; i++) {temp ^=i;}

                for (int i=0;i<n;i++) {temp ^=a[i];};

                return temp;

}

XOR的特性是两两消去,n^n=0, 0^n=n

所以出现偶数次的数字会相互抵消,缺失的那个数只出现一次(奇数次),自然就求出来了。

位操作,硬件有对应的指令,效率也很高。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值