js和js的快速
排序访问是相当多的。这是我对快速排序和快速排序、重载代码的理解。
1。什么是快速排序
第一步:快速排序是去一个中间值,然后把小的留给arrleft比中间值,并
设置为arrright大于中间值的权。
第二步:以arrleft第一步走arrright第一步。(显然是递归,当数组长度小于2)
第三步:合并arrleft,中间值,arrright
快速排序=
功能(ARR){
如果(arr.length <){
报酬;
}
var tmp = arr.splice(math.floor(arr.length /),{ }),
arrleft = { },
arrright = { };
对于(var i =;i < arr.length;i++){
如果(ARR {我} = TMP){
ArrRight.push(ARR {我});
其他{ }
ArrLeft.push(ARR {我});
}
}
返回arguments.callee(arrleft)。Concat(TMP,arguments.callee(arrright));
}
2、JS的体重
首先要考虑的是,如果循环使用一个数组,每个值将与后面的值进行比较。如果没有相同的,把它放在一个新的数组中,这样它就更重了。
第一种
VaR独特=功能(ARR){
var newarr = { };
而(arr.length){
VaR值= arr.shift();
对于(var i =,len = arr.length;我< len;i++){
如果(值= = ARR {我}){
打破;
}
}
如果(i = =){
NewArr.push(值);
}
}
返回newarr;
}
但这样做两次,效率不好。下面是一个很好的例子,将对象的值声明为对象的
属性,并将其赋值给对象,然后判断对象属性是否存在。
第二种
VaR独特=功能(ARR){
var arr = { };
var obj = { };
对于(var i =,len = a.length;我< len;i++){
如果(!obj { {我} }){
obj { {我} } =;
Arr.push(一个{我});
}
}
console.log(obj)
报酬;
};
另一种
方法是排序和
删除权重,这很容易。若要确定前值是否等于后一值,如果相等,则稍后移动一位。
第三种
VaR独特=功能(ARR){
var newarr = { };
对于(var i =,len = arr.length;我< len;i++){
如果(ARR {我}!= ARR {我+ }){
NewArr.push(ARR {我});
}
如果(i = =){
NewArr.push(ARR {我});
}
}
返回newarr;
}
以上是JS,
介绍的是萧边实现快速排序和去除重量。我们希望能帮助你。如果你有任何问题,请给我留言,萧边会及时给您回复。谢谢您
支持网站。