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

来源:互联网 发布:淘宝网服装男士 编辑:程序博客网 时间:2024/05/29 04:31

(2)经典算法面试题(至少选择其中1道题并作答,有自己的思考与理解)

给出一个函数来输出一个字符串的所有排列。主体代码来自网络http://www.dewen.org/q/8283

public class aaa {public static void main(String[] args) {          String str = "abc";          permutation(str.toCharArray(), 0);      }         public static void permutation(char[] str, int i) {           if (i >= str.length)              return;           if (i == str.length - 1) {              System.out.println(String.valueOf(str));           } else {               for (int j = i; j < str.length; j++) {                  char temp = str[j];                  str[j] = str[i];                   str[i] = temp;                      permutation(str, i + 1);                      temp = str[j];                   str[j] = str[i];                  str[i] = temp;              }           }       }}


运行结果:

 

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

    上网搜索有关“搜索引擎”的相关资料,包括但不限于以下方面(至少要有2个方面):搜索引擎岗位要求、搜索引擎工作原理、搜索引擎涉及到教材中哪些算法、搜索引擎的盈利模式、搜索引擎源码链接、国内外搜索引擎公司现状等。

1)搜索引擎的盈利模式

在搜索引擎发展早期,多是作为技术提供商为其他网站提供搜索服务,网站付钱给搜索引擎。后来,随着2001年互联网泡沫的破灭,大多转向为竞价排名方式。

搜索引擎的主流商务模式(百度的竞价排名、Google的AdWords)都是在搜索结果页面放置广告,通过用户的点击向广告主收费。这种模式最早是比尔·格罗斯(Bill Gross)提出的。他于1998年6月创立GoTo公司(后于2001年9月更名为Overture),实施这种模式,取得了很大的成功,并且申请了专利。这种模式有两个特点,一是点击付费(Pay Per Click),用户不点击则广告主不用付费。二是竞价排序,根据广告主的付费多少排列结果。 2001年10月,Google推出AdWords,也采用点击付费和竞价的方式。2002年,Overture起诉Google侵犯了其专利。2004年8月,和Yahoo!(Yahoo!于2003年7月收购Overture)达成和解,向后者支付了270万普通股(合3亿美元不到)作为和解费。

AdSense是Google于2003年推出的一种新的广告方式。AdSense使各种规模的的第三方网页发布者进入Google庞大的广告商网络。Google在这些第三方网页放置跟网页内容相关的广告,当浏览者点击这些广告时,网页发布者能获得收入。AdSense在blogger中很受欢迎。同时,Google武断地删除一些帐号,引起部分人的不满。类似的广告方式,其他搜索引擎也先后推出。雅虎的广告方式是YPN(Yahoo Publisher Network),YPN ;除了可以在网页上显示与内容相关的广告以外,还可以通过在 RSS ;订阅中来显示广告。微软的广告计划叫AdCenter。百度也推出主题推广。

2)搜索引擎工作原理

第一步:爬行

搜索引擎是通过一种特定规律的软件跟踪网页的链接,从一个链接爬到另外一个链接,像蜘蛛在蜘蛛网上爬行一样,所以被称为“蜘蛛”也被称为“机器人”。搜索引擎蜘蛛的爬行是被输入了一定的规则的,它需要遵从一些命令或文件的内容。

第二步:抓取存储

搜索引擎是通过蜘蛛跟踪链接爬行到网页,并将爬行的数据存入原始页面数据库。其中的页面数据与用户浏览器得到的HTML是完全一样的。搜索引擎蜘蛛在抓取页面时,也做一定的重复内容检测,一旦遇到权重很低的网站上有大量抄袭、采集或者复制的内容,很可能就不再爬行。

第三步:预处理

搜索引擎将蜘蛛抓取回来的页面,进行各种步骤的预处理。

⒈提取文字

中文分词

⒊去停止词

⒋消除噪音(搜索引擎需要识别并消除这些噪声,比如版权声明文字、导航条、广告等……)

5.正向索引

6.倒排索引

7.链接关系计算

8.特殊文件处理

除了HTML 文件外,搜索引擎通常还能抓取和索引以文字为基础的多种文件类型,如 PDF、Word、WPS、XLS、PPT、TXT 文件等。我们在搜索结果中也经常会看到这些文件类型。但搜索引擎还不能处理图片、视频、Flash 这类非文字内容,也不能执行脚本和程序。

第四步:排名

用户在搜索框输入关键词后,排名程序调用索引库数据,计算排名显示给用户,排名过程与用户直接互动的。但是,由于搜索引擎的数据量庞大,虽然能达到每日都有小的更新,但是一般情况搜索引擎的排名规则都是根据日、周、月阶段性不同幅度的更新。

 

 

 

 

0 0
原创粉丝点击