快速排序是一个最差时间复杂度为O(n²)的排序算法,这种情况通常出现在选择的轴值(pivot)不能将数组划分为两个长度相等的子数组的时候,比如数组逆序排列的时候,如果选择第一个数作为轴值,划分的子数组的大小分别为0和n-1,此时算法的性能最差。
一个较好的办法是“三数取中”,查看当前数组的第一个、中间一个和最后一个位置的数组,取其中位数,以此来降低轴值选择得不好的可能性。
JavaScript实现代码如下:
Array.prototype.swap = function (i
...
我们可以使用数组的 push() 方法来合并数组
var a = [1,2,3];var b = [4,5,6];Array.prototype.push.apply(a,b);console.log(a);//输出1,2,3,4,5,6
push方法本身没有提供push一个数组,但它提供了push(param1,parm2…),支持传入多个参数。而apply方法可以将一个数组转换为一个参数列表,apply的第一个参数用于改变this对象,将数组a传给它,也就相当于在a上调
...
JavaScript中用RegExp对象表示正则表达式,可以用RegExp()构造函数来创建正则表达式,不过更多时候是用对象直接量来创建如: var re = /s$/;这个正则表达式可以匹配以字符s结尾的字符串
1.字符类把字符放进方括号就变成了字符类,一个字符类可以匹配它所包含的任意字符。如:/[abc]/与字母a、b、c中的任意一个都匹配。常见字符类[abc] 方括号内任意字符[^abc] 不在方括号内的任意字符. 除换行符和其他Unicode行终止符之外的任意字
...