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

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

设计思维 2017-11-10 09:57:44

设计应该是一种有目的的追求,专注于创造实用,合理的解决方案。设计是一个产生合理结果的过程。设计离不开探索,但它是有结构的探索。设计师如同一名管道工。当然,与艺术家一样,你的工作是与想法、信念、洞察力打交道,但又不同于其他的创意追求。在多数情况下,你就像管道工一样,需要检验故障,解决实际问题。每一件设...

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

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

学会学习 2017-11-10 09:55:17

会学习意味着会根据自身的基础条件和主客观条件,去计划、调控和评价学习会学习意味着会利用最少的时间、尽量少的精力,以最快的速度获取尽可能多的知识和技能。会学习意味着会自己把握学习的重点,不满足于获取某种知识,而是重点把握思维过程和方法。会学习意味着会把所学知识应用到生产和社会需要的实践中去。科学家研究...

关于网站 2017-11-10 09:28:44

网站设计初衷在人的一生中,会发生很多事情,会有很多感悟,感动,会有很多珍贵的东西。这些美好的东西,美好的回忆,会继续影响着未来。我希望能够有一个地方保存这些东西,虽然很少人或甚至没有人会看到这个网站,但对于我来说是无所谓的。互联网是个开放的平台,我希望能分享我的观点,捍卫我的世界观,在网站上留下自己...

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

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

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

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

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

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