JS算法总结
2016-03-16 21:07
411 查看
1、选择排序:
原理分析:
1、获取当前数组中最小的那个值。
2、获取最小值的分析:随便从数组中拿出一个值,把这个拿出来的值当做最小值,然后和后面的值比较,如果后面的值比这个当前的值还小,那么我们把拿出来的那个值赋值成那个更小的值。
3、保存那个最小值的索引,因为我们需要删除这个最小值,好获取下一轮第二小的值,不然下一轮的最小值还是这个值。
4、删除数组中的最小值。
5、因为一次只能获取一个最小值,所以我们需要通过递归,不断地重复调用它。
在前面的一篇文章中我还写给另外个两种排序算法,如果你对算法感兴趣的话可以看看js数组冒泡排序,快速排序的原理以及实现这篇文章。
2、数组去重:
原理分析:
1、创建一个空对象和一个空数组,空对象用来过滤数组中相同的值,而空数组用来保存过滤以后的值。
2、循环判断这个空对象的值是否和数组中的值一样,如果一样就不理会,如果这个对象中没有这个值就添加,并且把这个值添加到我们创建的数组中。
var arr = [3,6,7,2,6,4,1,6,8,24,12,53]; function sort(arr){ // 当数组的长度小于1的时候结束递归 if(arr.length==1){ return arr; } var min = arr[0],index = 0; for(var i=0;i<arr.length;i++){ // 计算最小值,如果数组当前值比之前的值还小那么min等于最小值。 if(arr[i]<min){ min = arr[i]; // 保存下最小值的索引,好用来后面删除它 index = i; } } // 删除最小值 var prev = arr.splice(index,1); // 通过递归,将这一轮中的最小值合并下一轮的最小值,直到arr的length为1停止递归。 return prev.concat(sort(arr)); } console.log(sort(arr));
原理分析:
1、获取当前数组中最小的那个值。
2、获取最小值的分析:随便从数组中拿出一个值,把这个拿出来的值当做最小值,然后和后面的值比较,如果后面的值比这个当前的值还小,那么我们把拿出来的那个值赋值成那个更小的值。
3、保存那个最小值的索引,因为我们需要删除这个最小值,好获取下一轮第二小的值,不然下一轮的最小值还是这个值。
4、删除数组中的最小值。
5、因为一次只能获取一个最小值,所以我们需要通过递归,不断地重复调用它。
在前面的一篇文章中我还写给另外个两种排序算法,如果你对算法感兴趣的话可以看看js数组冒泡排序,快速排序的原理以及实现这篇文章。
2、数组去重:
var arr = [3,6,7,2,5,5,6,4,1,6,8,24,12,53]; function sort(arr){ var obj = {}; var t = []; for(var i=0;i<arr.length;i++){ // 判断这个对象的属性是否和数组的值相同,相同则不添加,否则给这个对象添加这个值 if(!(obj[arr[i]]===arr[i])){ obj[arr[i]] = arr[i]; // 把这个过滤完以后的值添加到我们的新数组中。 t.push(arr[i]); } } return t; } console.log(sort(arr));
原理分析:
1、创建一个空对象和一个空数组,空对象用来过滤数组中相同的值,而空数组用来保存过滤以后的值。
2、循环判断这个空对象的值是否和数组中的值一样,如果一样就不理会,如果这个对象中没有这个值就添加,并且把这个值添加到我们创建的数组中。
相关文章推荐
- 第七章:JavaScript面向对象三大特征
- js笔记
- JSP初学
- javascript 关于弹出新页面始终在正中央方法
- js调用百度地图API
- JavaScript中的引用类型
- JavaScript 代码规范
- 原生javascript 简易实现放大镜效果
- 【bzoj1013】[JSOI2008]球形空间产生器sphere 高斯消元
- 使用.net 3.5的DataContractJsonSerializer进行JSON Serialization
- JS解析XML--实现省市县级联
- js的几种继承方式
- JSP里ContentType ,charset和pageEncoding的理解与区别
- Jackson 框架,轻易转换JSON
- JavaScript学习笔记(9)——JavaScript语法之流程控制
- ArcGIS api for JavaScript 制作统计专题图
- JavaScript内置对象
- JavaScript中JSON的使用
- jsonp使用示例
- Hive JSON数据处理的一点探索