数组去重和快速排序
来源:互联网 发布:苹果手机数据备份 编辑:程序博客网 时间:2024/04/30 15:32
不管什么语言,对于数组的去重和排序都是必不可少的,以前也分析过C语言中的一些数组排序方法,这次再来看看js中吧
数组去重:
(思路:新建一个空的result数组,一个空的对象。遍历需要去重的数组,判断对象中是否存在当前遍历的元素作为属性名,没有的话则将该元素存入result数组中,同时为obj对象添加上该属性名。)
Array.prototype.removeDup3 = function(){ var result = []; var obj = {}; for(var i = 0; i < this.length; i++){ if(!obj[this[i]]){ result.push(this[i]); obj[this[i]] = 1; } } return result; } var arr = [1,2,2,5,2,"测试","test","测试","test"]; console.log(arr.removeDup3());
数组快速排序:
(思路:判断当传入的数组长度大于1的情况下,获取中间值,新建两个空数组,分别用来存放大于中间值和小于中间值的元素,递归调用,最后返回结果。)
var quickSort = function(arr) { if (arr.length <= 1) { return arr; } var pivotIndex = Math.floor(arr.length / 2); var pivot = arr.splice(pivotIndex, 1)[0]; var left = []; var right = []; for (var i = 0; i < arr.length; i++){ if (arr[i] < pivot) { left.push(arr[i]); } else { right.push(arr[i]); } } return quickSort(left).concat([pivot], quickSort(right)); }; var arr1 = [1,4,65,21,2,222,111]; console.log(quickSort(arr1));//concat() 方法用于连接两个或多个数组。
tips:
split用于分割字符串
splice用户插入,删除或者替换数组
slice 用户提取字符串的某个部分
0 0
- 数组去重和快速排序
- 快速排序+数组去重
- js面试题之数组去重和快速排序
- JS面试之数组去重和快速排序
- 数组快速排序、去重算法
- Javascript 实现数组去重,快速排序
- js数组的去重和排序
- 数组去重和冒泡排序
- 冒泡法排序和数组去重
- 数组排序去重
- 去重和排序
- 去重和排序
- Bit-map空间压缩和快速排序去重
- Bit-map空间压缩和快速排序去重
- Bit-map空间压缩和快速排序去重
- 数组排序去重算法
- 数组去重与排序
- js数组排序去重
- java多线程(7)--多线程中sleep和wait的区别
- Python 读取TXT文件
- ANDROID STUDIO JNI使用
- js圆形轨迹公式(转)
- RecursiveTask
- 数组去重和快速排序
- 文章标题
- Pyinstaller won't run. "ImportError: DLL load failed" #1840
- mysql 笔记
- 在eclipse中创建maven项目
- 3年工作经验面试需要掌握的技术
- Comodo Dragon之模拟手机浏览器(iOS/Android)
- JVM初探- 内存分配、GC原理与垃圾收集器
- python中字符串定义、索引、切片、加号、星号操作实例