前言

正则表达式( Regular Expressions)是用来匹配字符串中的字符组合的模式,通过这个模式我们可以进行字符串的搜索和替换等操作。ECMAScript通过RegExp类型来支持正则表达式,当然,String 对象中也有多个方法支持正则表达式操作。

继续阅读→

阅读全文

一、搭建HTTP服务器

前端开发经常会遇到移动端调试或者其它设备测试的场景,部署到云服务器上实在是太麻烦,如果可以在局域网直接调试就方便多了,这里介绍个通过Python轻松搭建一个局域网HTTP服务器的方法。

如果你的电脑已经装上了Python,那么,搭建一个静态文件服务器将是一件非常简单的事情。

你只需进入到你的项目文件夹,运行下面这一条命令,就可以把该文件夹作为一个HTTP服务器的根目录(后面8888为端口):

继续阅读→

阅读全文

算法原理

快速排序是目前各种排序算法中较为高效的一种算法,它的基本思想是分治法

分治法(Divide and Conquer Algorithm):把原问题分为若干个与原问题结构类似的子问题,然后对子问题进行递归求解,最后把这些子问题的解集全部合并起来就是原问题的解。

 

算法具体实现有三个步骤:

1. 从数组中选出一个元素,我们称之为 “基准”(pivot);

2. 先进行一次循环比较,把所有比基准小的数放左边,把所有比基准大的数放右边(相等的值随便哪边放都行),这个操作称为分区 (partition) 操作。当分区完成后,我们就得到了两个子分区,   其中一个分区的所有元素的值都比另外一个分区大。

3. 分别对步骤二分出来的两个子集进行递归排序,直到最后子集只剩一个元素为止。

2016050511445291

图片来自维基百科

继续阅读→

阅读全文

前言

  排序算法(Sorting algorithm)是一种能将一串数据依照特定排序方式的最基本最常用的算法,常见的有冒泡排序、快速排序、插入排序、二叉树排序等等,下面这个表格总结了各种排序算法的复杂度与稳定性:

2016050311055495

不同的场景对排序算法的选择有着不同的要求,对每种排序算法的深入理解能帮助我们更好地选择合适的算法。关于排序算法的理论书籍或博客已经非常的多,下面列举一些可视化的排序展示,换种方式看算法,以一种更直观的方式理解排序算法的工作原理。

继续阅读→

阅读全文