javascript中排序的方法
2017-07-24 23:28
369 查看
插入排序
原理:把元数组中的第一项拿出来放在新数组中,在对原数组进行循环和新数组中的每一项对比,如果原数组中的这一项比新数组中的每一项都小,则放到新数组中的第一项,相反这放在新数组最后。
快速排序
原理:把原数组的长度去中间值,之后把中间的那个值记录下来cur,之后把原数组中剩下的值循环和cur比较,如果大于cur就放在右边,小于就放在左边,之后再对左右两边的值进行快速排序,之后cur的两边的值是一个为止,结束排序。
sort排序:只可以排数字
冒泡排序
原理:原数组中的第一个小于第二个,不做操作,如果第一个大于第二个,那么交换二者的位置
原理:把元数组中的第一项拿出来放在新数组中,在对原数组进行循环和新数组中的每一项对比,如果原数组中的这一项比新数组中的每一项都小,则放到新数组中的第一项,相反这放在新数组最后。
var ary=[5,9,7,3,4,8,2]; function paixu(ary){ var newary=[]; newary.push(ary[0]); console.log(newary); for(var i=1;i<ary.length;i++){ for(var j=newary.length-1;j>=0;){ if(ary[i]<newary[j]){ j--; if(j===-1){ newary.unshift(ary[i]); } }else{ newary.splice(j+1,0,ary[i]); j=-1 } } } return newary; } paixu(ary); console.log(paixu(ary));
快速排序
原理:把原数组的长度去中间值,之后把中间的那个值记录下来cur,之后把原数组中剩下的值循环和cur比较,如果大于cur就放在右边,小于就放在左边,之后再对左右两边的值进行快速排序,之后cur的两边的值是一个为止,结束排序。
<script> var ary=[19,14,11,18,16,15,17]; function quicksort(ary){ if(ary.length<=1){ return ary; } var index= Math.floor(ary.length/2); var cur=ary.splice(index,1)[0]; var left=[]; var right=[]; for(var i=0;i<ary.length;i++){ ary[i]>cur?right.push(ary[i]):left.push(ary[i]); }; return quicksort(left).concat([cur],quicksort(right)); }; console.log(quicksort(ary)) </script>
sort排序:只可以排数字
<script> var ary=[4,3,5,2,6,1]; ary.sort(function(a,b){return a-b;}); console.log(ary) </script>
冒泡排序
原理:原数组中的第一个小于第二个,不做操作,如果第一个大于第二个,那么交换二者的位置
<script> var ary=[4,5,3,6,2,1,8]; function sort(ary) { var flag=false; for(var i=0;i<ary.length-1;i++){ for(var j=0;j<ary.length-i-1;j++){ if(ary[j]>ary[j+1]){ ary[j]=ary[j]+ary[j+1]; ary[j+1]=ary[j]-ary[j+1]; ary[j]=ary[j]-ary[j+1]; flag=true;//只要本轮有交换的就让flag=true } } if(flag){//flag==true上一轮有交换的,继续执行下一轮 让flag从新的赋值false flag=false; }else{//上一轮没有交换,已经排好了,直接结束循环即可 break; } } return ary; } console.log(sort(ary)) </script>
相关文章推荐
- 学习笔记:快速排序的C++、JavaScript(2种方法)、Java实现
- Javascript数组的排序:sort()方法和reverse()方法
- 深入JavaScript高级程序设计之对象、数组(栈方法,队列方法,重排序方法,迭代方法)
- 分享两个JavaScript打乱数组顺序实现随机排序洗牌的方法(应用于音乐视频的随机播放等)
- JavaScript 使用sort()方法来给数组排序
- JavaScript重排序方法
- JavaScript对象数组排序实例方法浅析
- javascript 排序方法
- javascript实现Table排序的方法
- javascript实现Table排序的方法
- JavaScript排序方法
- JavaScript数组排序reverse()和sort()方法详解
- javascript 数组排序sort方法和自我实现排序方法的学习小结 by FungLeo
- JavaScript sort数组排序方法和自我实现排序方法小结
- javascript 学习笔记 【数组排序方法】
- javascript数组(1) ——sort的工作原理及其他数组排序方法
- JavaScript实现表格排序方法
- JavaScript自定义数组排序方法
- JavaScript对象数组的排序处理方法
- Javascript重排序方法