深入理解js实现的快速排序和权重去除

深入理解js实现的快速排序和权重去除
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,介绍的是萧边实现快速排序和去除重量。我们希望能帮助你。如果你有任何问题,请给我留言,萧边会及时给您回复。谢谢您支持网站
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部