javascript中排序的方法
来源:互联网 发布:java list排序函数 编辑:程序博客网 时间:2024/06/08 12:34
插入排序
原理:把元数组中的第一项拿出来放在新数组中,在对原数组进行循环和新数组中的每一项对比,如果原数组中的这一项比新数组中的每一项都小,则放到新数组中的第一项,相反这放在新数组最后。
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>
阅读全文
0 0
- javascript中排序的方法
- javascript中sort方法排序
- JavaScript中按照字母排序列表的两种方法
- javascript中array类型的重排序方法
- JavaScript数组的排序方法
- 常见的排序方法(javascript)
- JavaScript经典的排序方法
- javascript中数组排序方法sort()用法
- JavaScript中sort()排序方法使用
- javaScript中使用 sort方法根据数组中对象的某一个属性值进行排序
- javascript中使用 sort方法根据数组中对象的某一个属性值进行排序
- javascript 的几种排序方法
- JavaScript的几种排序方法
- javascript 的几种排序方法
- javascript 的几种排序方法
- javascript 的几种排序方法
- JavaScript 数组的重排序方法
- Javascript中方法的重载
- Django笔记
- 2017/7/24 学习心得 css3第二天
- hibernate-架构
- test2
- java利用map来实现可视化统计随机数分布
- javascript中排序的方法
- LVS系列—LVS安装使用详解(ipvsadm命令)
- 我的第一个博客 -----日常+【java】 JDK与JRE、JVM的关系
- NUMBER BASE CONVERSION (进制转化) (模板)
- Matplotlib.pyplot中subplot详解
- 必知composer命令
- JavaScript学习之计时器的用法
- spring拦截器之向页面传入项目地址
- Puppet —自动化部署工具详解