javascript 中合并排序算法 详解
2015-12-03 13:27
567 查看
javascript 中合并排序算法 详解
我会通过程序的执行过程来给大家合并排序是如何排序的... 合并排序代码如下:
[javascript] view plaincopy
<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());
}
return result.concat(left).concat(right);
}
function mergeSort(items)
{
if(items.length==1)
{
return items;
}
var middle=Math.floor(items.length/2);
var left=items.slice(0,middle);
var right=items.slice(middle);
return merge(mergeSort(left),mergeSort(right));
}
var items=mergeSort([100,44,2,4,6,78]);
alert(items);
</script>
代码里面用到了递归算法.. 和 二分法的思想, 大家看下面的步骤:
上面是我对合并算法的理解,如有不对之处,希望大家多多指导,谢谢!
我会通过程序的执行过程来给大家合并排序是如何排序的... 合并排序代码如下:
[javascript] view plaincopy
<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());
}
return result.concat(left).concat(right);
}
function mergeSort(items)
{
if(items.length==1)
{
return items;
}
var middle=Math.floor(items.length/2);
var left=items.slice(0,middle);
var right=items.slice(middle);
return merge(mergeSort(left),mergeSort(right));
}
var items=mergeSort([100,44,2,4,6,78]);
alert(items);
</script>
代码里面用到了递归算法.. 和 二分法的思想, 大家看下面的步骤:
上面是我对合并算法的理解,如有不对之处,希望大家多多指导,谢谢!
相关文章推荐
- javascript高性能
- javascript typeof 和 instanceof 的区别和联系
- Javascript正则表达式
- servlet&jsp 学习资料
- 把json对象数组属性相同的进行分组,然后取值
- jsp include指令元素
- jsp技术
- Callback Hell-Javascript异步编程指导
- #学习笔记#(4)输入框提示信息不能为空--JavaScript改变CSS样式
- Javascript 严格模式详解
- 比较两种数组随机排序方法的效率 JavaScript版
- 继续学习javascript闭包
- jsp 日期标签的使用
- 解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
- Newtonsoft.Json(Json.Net)学习笔记
- js获取当前时间
- 序列化模块之 pickle 和 json
- jsp ajax实例讲解
- 在jsp中运用ajax(简单入门)
- jsp 清除session的方法