一起来写一个压缩软件吧

screen-shot-2016-12-05-at-1-15-23-am

十几年前的时候,电脑的储存容量还很小,最大硬盘空间只有40G都是很常有的事情,Windows XP安装时候加入了Zip打包功能,还有很早之前就很著名的压缩软件WinRAR,他们都可以将一堆文件打包并且压缩,换取更多的空间,这篇文章将会讲述霍夫曼压缩算法的基本原理,并且使用Java编写一个简单的压缩软件。

网页爬虫系统的设计

Abstract-word-cloud-for-Web-crawler-with-related-tags-and-terms-Stock-Photo

网络爬虫,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。当你需要大量的网络数据的时候,比如需要做一些数据分析,需要学习一些基于内容处理的算法的时候,爬虫程序就可以来为你抓取网站上的数据,人工一个页面一个页面的查找复制肯定不是办法,这个时候就需要编写爬虫来自动的为你去抓取网页数据。这篇博客将会讲述网页爬虫的设计。

MiniMax算法优化:Alpha-Beta剪枝算法

alphabeta

通过前面两次博客的介绍,现在我们已经可以在手机上写出一个三子棋游戏,并且可以使用Minimax算法为游戏添加AI,让程序也学会下三子棋。但是其中Minimax算法是使用了一种全局搜索,这个算法会遍历整个博弈树的所有节点,在三子棋中,博弈树的深度和广度并不是很大,但是如果到了五子棋或者其他棋类,博弈树的深度和广度将会成指数型增长,这下再不优化算法的话,程序走一步棋就可能要运算几天了,特别浪费时间。这篇博客将会讲述Minimax算法的优化。其中包括负极大值算法和Alpha-Beta剪枝算法。