深入理解JS实现快速排序和去重javascript技巧
来源:才华咖 本文已影响8.37K人
来源:才华咖 本文已影响8.37K人
JS的快速排序和JS去重在面试的时候问的挺多的.下面是我对快速排序的理解,和快速排序,去重的代码.
1.什么是快速排序?
第一步: 快速排序就是去个中间值,把比中间值小的放在左边设为arrLeft,比中间值大的放在右边设为arrRight
第二步: 对arrLeft进行第一步,对arrRight进行第一步.(明显是一个递归嘛,当数组的长度小于2的时候结束)
第三步: 合并arrLeft,中间值,arrRight
quickSort = function(arr){if(th < ){return arr;}var tmp = ce(r(th/), )[],arrLeft = [],arrRight = [];for(var i = ; i < th; i++){if(arr[i] >= tmp){(arr[i]);}else{(arr[i]);}}return ee(arrLeft)at(tmp,ee(arrRight));}
的去重?
大家第一个想到的应该是,循环一次数组,每取到一个值就与后面的比较,如果没有相同的就放入一个新数组里面,这样就去重了
第一种
var unique = function(arr){var newArr = [];while(th){var value = t();for(var i = , len = th; i<len; i++){if(value==arr[i]){break;}}if(i==len){(value);}}return newArr;}
但是这样循环了二次,效率不好.下面提供的较好,声明一个对象,数组的'值作为对象的属性并赋值为一,然后判断这个对象属性是否存在就行了
第二种
var unique = function(arr){var arr = [];var obj = {};for(var i = , len = th; i < len; i++){if(!obj[a[i]]){obj[a[i]] = ;(a[i]);}}(obj)return arr;};
还有一种就是排序并去重 ,这种就更加容易了.判断前面一个值是不是等于后面一个值如果相等,往后移动一位就行了
第三种
var unique = function(arr){var newArr = [];for(var i = , len = th; i<len; i++){if(arr[i] !==arr[i+]){(arr[i]);}if(i==len){(arr[i]);}}return newArr;}
以上所述是小编给大家介绍的JS实现快速排序和去重,希望对大家有所帮助,如果大家有任何疑问请给我们留言,小编会及时回复大家的。在此也非常感谢大家对的支持!
Javascript入门学习js函数
深入学习Javascript中的this关键字
javascript作用域和闭包的深入理解
关于JavaScript中继承的深入理解
javascript解析json实例
Java Tomcat和激活MyEclips的深入理解
JavaScript中push(),join() 函数实例详解
JavaScript JS入门详细教程
深入理解javaScript中事件驱动
常用排序算法之JavaScript实现代码段
深入理解Javascript中自执行匿名函数
JavaScript如何实现JSON.stringify
深入理解Javascript的继承和原型链
java与javascript之间json格式数据互转详解
使用JavaScript实现Java的List功能
用Javascript进行简单的Table点击排序
aircy,的过程,作者,3页,教程,js,javascript,分享
关jQuery弹出窗口简单实现代码-javascript编程
JavaScript高级程序设计:本地对象Array
深入理解JS实现快速排序和去重javascript技巧
JavaScript与java语言有何不同
理解Javascript对象
JavaScript 小型打飞机游戏实现和原理说明
快速完成工作的50个技巧
JavaScript ES6中CLASS的使用指南
Java与JavaScript的区别
快速作文技巧——巧借现成材料
关于ASP.NET使用JavaScript显示信息提示窗口实现原理及代码
php和javascript之间变量的传递实现代码
JavaScript与java语言的区别
高中语文语句排序题解题技巧
JavaScript中的style.cssText使用教程分解
JavaScript数组去重的四种方法
JavaScript与java语言有何区别
java与JavaScript语言有何不同
JavaScript-JavaScript数据结构和算法之图和图算法,
JavaScript与Java的区别
关于JavaScript中call()和apply() 的一些理解
在Java中执行JavaScript代码
用 Javascript 实现锚点(Anchor)间平滑跳转