摘要:
https://google-developers.appspot.com/chart/ 阅读全文
摘要:
最近,在向大学生们介绍 HTML5 的时候,我想要对他们进行问卷调查,并向他们显示实时更新的投票结果。鉴于此目的,我决定快速构建一个用于此目的的问卷调查应用程序。我想要一个简单的架构,不需要太多不同的语言和框架。因此,我决定对所有一切都使用 JavaScript — 对服务器端使用 Node.js 和 Express,对数据库使用 MongoDB,对前端用户界面使用 AngularJS。这个 MEAN 堆栈(Mongo、Express、Angular 和 Node)只需要一天即可完成,远比 Web 应用程序开发和部署所用的 LAMP 堆栈(Linux、Apache、MySQL 和 PHP)简单 阅读全文
摘要:
作者: Michael Abernethy 原文链接摘要:Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念。它的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处理数万条同时连接到一个(只有一个)物理机的连接代码。简介如果您听说过 Node,或者阅读过一些文章,宣称 Node 是多么多么的棒,那么您可能会想:“Node 究竟是什么东西?” 即便是在参阅 Node 的主页之后,您甚至可能还是不明白 Node 为何物?Node 肯定不适合每个程序员,但它可能是某些程序员一直苦苦追寻的东西。为试图解释什么是 Node.js,本文将简要介绍一些背景信息:它要解 阅读全文
摘要:
最小全局变量JavaScript通过函数管理作用域。在函数内部生命的变量只在这个函数内部,别的地方不可用。全局变量是指在函数外或是未声明直接简单使用的。每个Javascipt环境有一个全局对象,当你在任意函数外使用this都可以访问。你创建的每一个全部变量都成了这个全局对象的属性。在浏览器里,方便起见,该全局对象有个附件属性叫做window,此window指向该全局对象本身。myglobal = "hello"; // 不推荐写法console.log(myglobal); // "hello"console.log(window.myglobal); 阅读全文
摘要:
SVG(Scalable Vector Graphics):可缩放矢量图形,一种二维图形表示语言。借助SVG,我们可以实现很多同Canvas API类型的绘制操作,但在Canvas元素上绘制文本的时候,字符会以像素的方式固定到上面。文本成为了图像的一部分,除非重新绘制Canvas绘制区域,否则无法改变文本内容。正因为如此,Canvas上面的文本无法被搜索引擎获取,而SVG上的文本却是可搜索的。例如,Google会对Web上的SVG内容中的文本进行索引。在页面中添加SVG内联方式:像HTML中的其它元素一样使用,在此基础上可以编写HTML,JavaScript和SVG的交互应用。 ... 阅读全文
摘要:
前言 一直以来都想使用Git来管理自己平时积累的小代码,就是除了工作之外的代码了。有时候自己搞个小代码,在公司写了,就要通过U盘或者网盘等等一系列工具进行Copy,然后回家才能继续在原来的基础上作业。Copy来Copy去的麻烦不说,很容易出错,导致好不容易写的一点代码就找不到了。而且就目前来看,Git应该说是源代码管理工具中最NB、应用最广泛的了,很多开源的项目目前都转意到了GitHub上面来了。经常看到园子里的兄弟也来学习Git,对于一个菜鸟感觉再不拥抱Git就又要被甩尾了。 我是在Win7 64位机器下进行的源代码管理说明。开发工具使用的是VS2012。 首先说明一下需要配置过程中必... 阅读全文
摘要:
基本思想:1.鸡尾酒排序等于是冒泡排序的轻微变形。不同的地方在于从低到高后然后从高到低,而冒泡排序则仅从低到高去比较序列里每一个元素。算法复杂度:最糟或平均多花费的次数是O(f(n2)),但是如果序列式已经排序号的是,会接近O(n)。具体实现:function cocktail_sort(list, list_length){ // the first element of list has index 0 bottom = 0; top = list_length - 1; swapped = true; while(swapped == true) // if n... 阅读全文
摘要:
基本思想:1.将两个已经排序的序列合并成一个序列的操作。2.申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列。3.设定两个指针,最初位置分别为两个已经排序序列的起始位置。4.比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置。5.重复步骤4知道某一指针达到序列尾。6.将另一序列剩下的所有元素直接复制到合并序列尾。算法复杂度:比较操作的次数介于(nlogn)/2和nlogn-n+1。赋值操作的次数是(2nlogn).空间复杂度:Θ (n)具体实现: public static List sort(List lst) { ... 阅读全文
摘要:
基本思想:1.比较相邻元素。如果第一个比第二个大,就交换他们。2.对每一对相邻元素作同样的工作,从开始第一对到结尾最后一对。在这一点,最后元素应该是最大的数。3.针对所有的元素重复以上的步骤,除了最后一个。4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。时间复杂度:1.若文件的初始状态是正序的,那么此时的交换复杂度最小,为O(f(n))。2.若初始文件是反序的,需要进行n-1次排序。每次排序要进行n-i次关键字比较,且每次比较都必须移动记录三次来达到交换位置。在这种情况下,比较的复杂度为n(n-1)/2,置换的复杂度为3n(n-1)/2。算法稳定性:冒泡排序就是把小的 阅读全文
摘要:
基本思想:插入排序是一种比较直观的排序算法。具体逻辑为:1.从第一个元素开始,该元素可以认为已经被排序。2.取出下一个元素,在已经排序的元素序列中从后向前扫描。3.如果钙元素小于前面的元素(已排序),则依次与前面元素进行比较,如果小于则交换,直到找到大于该元素的就停止。4.如果该元素大于前面的元素(已排序),则重复步骤2。5.重复步骤2~4直到所有元素都排序好。时间复杂度: 最好情况: 比较:N-1 交换:0 最坏情况: 比较:N2/2 交换:N2/2 平均情况: 比较:N2/4 交换:N2/4具体实现:using System;using... 阅读全文