烈55火52网(LieHuo49.Net)教85程 JavaScript 单向冒泡排序算法的实现代码,关于冒泡排序算法的实现,下面的代码中有详细的注释,如果还是看不懂,可以自己搜索一下,欢迎大家学习和研究,欢迎提出建议。 代码演示: <html><br /> <head><br /> <meta http-equiv="content-type" content="text/html; charset=GB2312" /><br /> <title>单向冒泡排序</title><br /> <style><br /> * { font-size:12px; font-family:宋体, Arial; } /*规定了所有的字体样式*/<br /> body { overflow:auto; }<br /> </style><br /> <script><br /> window.onload = function(){<br /> var ary, st, re, timeCost, timeCost_a;<br /> //变量“timeCost”和“timeCost_a”用于记录排序用时<br /> timeCost = timeCost_a = 0;<br /> //生成一个长度1000的随机数组<br /> ary = create_random_array(1000);<br /> //记录开始时间<br /> st = new Date();<br /> //冒泡排序<br /> re = sort(ary);<br /> //累计用时<br /> timeCost = ((new Date())-st);<br /> ary = create_random_array(1000);<br /> st = new Date();<br /> //优化的冒泡排序<br /> re = sort_a(ary);<br /> timeCost_a = ((new Date())-st);<br /> //输出结果<br /> alert("冒泡排序耗时 " + timeCost + " 毫秒\r\n优化之后耗时 " + timeCost_a + " 毫秒");<br /> }<br /> //新建一个指定长度的数组,并对其元素赋以随机的数值<br /> function create_random_array(len){<br /> var re = new Array(len);<br /> for(var i=0; i<len; i++)re[i] = Math.random();<br /> return(re);<br /> }<br /> //冒泡排序算法<br /> function sort(ary){<br /> var len, ex, tmp;<br /> len = ary.length;<br /> for(var i=0; i<len; i++){<br /> //重置是否发生交换的变量<br /> ex = false;<br /> for(var j=len-2; j>=i; j--){<br /> if(ary[j+1]<ary[j]){<br /> //交换相邻的两个元素<br /> tmp = ary[j];<br /> ary[j] = ary[j+1];<br /> ary[j+1] = tmp;<br /> //记录发生了交换<br /> ex = true;<br /> }<br /> }<br /> //如果没有发生交换,表明已经排序完成<br /> if(!ex)break;<br /> }<br /> return(ary);<br /> }<br /> //改进的排序算法<br /> function sort_a(ary){<br /> var len, ex, tmp, first_ex_index;<br /> len = ary.length;<br /> for(var i=0; i<len; i++){<br /> ex = false;<br /> //如果存在已保存的上一次交换位置,则自上一次交换发生的位置开始扫描<br /> for(var j=first_ex_index?first_ex_index:(len-2); j>=i; j--){<br /> if(ary[j+1]<ary[j]){<br /> tmp = ary[j];<br /> ary[j] = ary[j+1];<br /> ary[j+1] = tmp;<br /> //如果此处第一次发生交换,则保存此位置<br /> if(!ex)first_ex_index = j;<br /> ex = true;<br /> }<br /> }<br /> if(!ex)break;<br /> }<br /> return(ary);<br /> }<br /> </script><br /> </head><br /> <body><br /> </body><br /> </html><br /><center>如不能显示效果,请按Ctrl+F5刷新本页,更多网页代码:<a href='http://www.veryhuo.com/' target='_blank'>http://www.veryhuo.com/</a></center>提示:可修改后代码再运行! 文章导航 jQuery数字即时加减功能,网页算法应用JavaScript计算器,可实现加减乘除运算