作家
登录

js 排序动画模拟 冒泡排序

作者: 来源:www.28hudong.com 2013-03-30 00:25:58 阅读 我要评论

而在某些场景中,队列确实像一支奇兵,可以带来不错的效果,比如配合定时器使用,可以模拟时间差效果 复制代码 代码如下: function createDq(){ var dq = [], size = 0; return { setDq:function(queue){ dq = queue; size = queue.length; }, queue:function(fn){ size ++; dq.push(fn); }, dqueue:function(){ size --; return dq.shift(); }, run:function(fn){ var me = this, timer; timer = setInterval(function(){ if(size <= 1){ clearInterval(timer); } fn.call(null,me.dqueue()); },30); } } } 以上是一个简单的实现,在不同的场景,可以做一些适当的变通,以做到因地制宜。 下面是一个模拟冒泡排序的动画,尝试着使用了一点点观察者模式,似乎还不错 复制代码 代码如下: function bubble(){ var obs = []; function compare(x, y) { return x.w - y.w; } function swap(a, i, j) { var t = a[i]; a[i] = a[j]; a[j] = t; } function proxy(a, i, j){ notify(a[i].id + "-" + a[j].id); swap.apply(null,arguments); } function notify(arg){ obs[0].m.call(obs[0],arg); } return { addOb:function(ob){ obs.push(ob); }, sort:function(arr){ var len = arr.length; for (var x = 1; x < len; x++) { for (var y = 0; y < len - x; y++) { if (compare(arr[y], arr[y + 1]) > 0) { proxy(arr, y, y + 1); } } } } } } [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

  推荐阅读

  js限制文本框只能输入数字(正则表达式)

好了,言归正传。话说我在网上找了很多限制文本框的办法都不尽人意,于是只好自己动手实践了,实践出真知嘛,这句话没错的。 复制代码 代码如下: function chkPrice(obj){ obj.value = obj.value.replace(/[^d.]/>>>详细阅读


本文标题:js 排序动画模拟 冒泡排序

地址:http://www.17bianji.com/kaifa2/JS/23248.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)