编译程序工作过程的5个阶段 2017-11-10 10:00:12

五个阶段图如下:词法分析:是编译器最开始的阶段,有三个过程:扫描,识别和翻译。扫描器将源代码逐字符扫描,并且识别,待识别一个词后,再将其翻译为token。扫描只需要读入字符即可,翻译只要识别成功就自然能翻译,所以这一步的核心就是识别器,识别器是使用有限自动机来实现的。通过源源不断的读入字符,使用有限...

关于javascript 关于Web前端的一些小事 2017-11-10 09:57:03

Web的无所不在是它的魅力。保证任何人都能无障碍地使用它,是一个最基本的原则。 近年来,web技术日新月异。对于web开发人员来说,开发一个网站从某种意义上来说变得越来越简单。实际上并非如此,开发一个健壮的网站,还是需要我们付出巨大的努力的。本文将主要着重于讲述web开发中的前端部分。熟悉我的人都知...

排序算法(三)---快速排序 2017-11-10 09:24:19

快速排序继插入排序,归并排序,堆排序后,今天将讲解快速排序。对于包含n个数的输入数组来说,快速排序的最坏情况时间复杂度为O(n^2)的排序算法,虽然最坏的时间复杂度很差,但是快速排序通常是实际排序应用中最好的选择,因为它的平均性能非常好,它的期望时间复杂度为是O(nlgn)。与归并排序一样,快速排序...

排序算法(二)---堆排序 2017-11-10 09:23:13

堆排序堆排序与插入排序的相同之处在于都具有空间原址性,即只需要常数个额外的元素空间来存储临时数据。它使用一种称为”堆“的数据结构来进行信息管理。二叉堆是一个数组(如图所示)它可以被看成是一个近似的完全二叉树,树上的每一个结点对应于数组中的每一个元素。除了最底层外,该树是完全充满的,而且是从左到右填充...

排序算法(一)---插入与归并 2017-11-10 03:43:06

插入排序对于少量元素,插入排序是一个有效的算法。插入排序就像是排序手中的扑克牌,每次我们从牌堆里抽出一张牌,并将它与手中的牌逐个比较,然后把它放入正确的位置。该算法原址排序,即算法在原数组中重排这些数,在任何时候,最多只有其中的常数个数字存储在数组外面。在算法结束后,该数组里的元素已经以某种顺序排好...

Linux---ftp和nfs服务器配置 2017-11-10 03:41:33

FTP服务器1、安装vsftpd服务器D代表Daemon进程,即守护进程。长期运行的进程sudo apt-get install vsftpd2、配置vsftpd.conf文件sudo vi /etc/vsftpd.conf添加文本anonymous_enable=yes //允许匿名用户...