JavaScript排序算法——归并排序
2016-02-03 12:17
786 查看
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>归并排序</title> <!--<link rel="stylesheet" type="text/css" href="../style/fdt.css" />--> <script type="text/javascript" src="../js/jquery-1.6.2.min.js"></script> <script type="text/javascript" src="../js/jquery.easydrag.handler.beta2.js"></script> <script type="text/javascript"> $(document).ready( function() { var array_1 = [9,8,7,6,5,4,3,2,1]; alert(array_1); /*mergeSort*/ //迭代实现 alert(mergeSort(array_1)); } ); </script> <style type="text/css"> * { padding:0; margin:0; } body { padding: 100px; font-size: 15px; } </style> <script type="text/javascript"> function merge(left,right){ var result=[]; while(left.length>0 && right.length>0){ if(left[0]<right[0]){ result.push(left.shift()); }else{ result.push(right.shift()); } } alert(" left="+left+" right"+right+" result="+result); alert(result.concat(left).concat(right)); return result.concat(left).concat(right); } function mergeSort(items){ if(items.length == 1){ return items; } var middle=Math.floor(items.length/2), left=items.slice(0,middle), right=items.slice(middle); alert(" middle="+middle+" items.length="+items.length+" left="+left+" right"+right+" items"+items); return merge(mergeSort(left),mergeSort(right)); } </script> </head> <body> <div>归并排序</div> </body> </html>
相关文章推荐
- JavaScript排序算法——堆排序
- JavaScript排序算法——插入排序
- JavaScript跨域总结与解决办法
- 表单元素input事件兼容解决方案
- js类封装
- js验证手机号邮箱
- JSP 指令
- javascript
- javascript DIV跟随鼠标移动
- JavaScript编程艺术之Function
- JSON详解
- JavaScript高级程序设计学习笔记第二章
- !!(2个叹号)在js代码中出现怎么理解
- afnetworking中,规范json格式的代码---这样打印出来errormessage就非常的方便了,呵呵呵呵
- javascript鼠标右键菜单自定义效果
- javascript中关于字符串替换 replace() 方法的使用(咋个办呢 zgbn)
- 每天学习十分钟22之JavaScript
- 2016-02-03 JS正则表达式
- js产生随机数
- Javascript的对象操作 - 数组元素操作 【javascript、数组、插入、删除、替换】 ( 咋个办呢 -zgbn)