易截截图软件、单文件、免安装、纯绿色、仅160KB

测试几种排序算法的javascript实现及效能测试

用来排序对像数组的. 最后还是决定用Array对像的sort方法,尽管这些都没用上,还是自己记在空间里当笔记用的.
快速排序,优化的快速排序,忘了名子的排序方法,对像提供的排序;  绝对不要用起泡法,除非是教学生。
为了测试,写了一个生成随机对像的方法,用来生成一个对像,对像中有一个属性 a ,a 的值为一个随机数字.以下为生成Array的方法:
function getRandomStr(){
return Math.round((1000 - 1 + 1 ) * Math.random() + 1);
}
var arr = new Array();
for(var i=0;i<5000;i++){
arr.push({a:getRandomStr()});
}
方法零:
 
方法一
 
实现原理:
     遍历数组,取得其中最大值(最小值也可以),将取到的值移到队列的最后,然后再次遍历至数组长度-1的位置,如此反复,直到最后需要遍历的位置长度为0 时为止,由于遍历次数只与数组长度有关,所以每次运行的次数是固定的. 即一个1 至 数组最大下标的累加值;
实现代码:
// 快速排序;
function SortObject1(arr){
// 记录数组最后需要遍历的位置
var leavings = arr.length;

// 准备交换对像用的临时变量;
var p1 = arr[0],p=0,tmp;

// 遍历数组;
while(leavings != 0){
// 寻找数组中最大的值
for(var i=0;i < leavings;i++){
if(arr[i].a > p1.a){
p1 = arr[i];
p = i;
}
}
//移动最大数据对像到队尾;
leavings--;
tmp = arr[p];
arr[p] = arr[leavings];
arr[leavings] = tmp;
p1=arr[0],p=0;

}
}
方法二
实现原理:
    优化第一种算法,在寻找最大值的同时,寻找最小值,将最大值移动到队尾,将小值移动到队头,则于参与运算的数组长度每次-2 所以运行次数为 1  +3 +5 +7 +9 + (i)  , i<=Array.length
实现代码:(注释省了,跟上的一样,只是另一个if同时在找最小的值.)
function SortObject2(arr){
var leavings_e = arr.length;
var leavings_s = 1
var p_max = arr[0],p_max_l=0,tmp;
var p_min = arr[0],p_min_l=0,tmp;
while(leavings_e > leavings_s){
for(var i=leavings_s;i<leavings_e;i++){
if(arr[i].a > p_max.a){
p_max = arr[i];
p_max_l = i;
}
if(arr[i].a < p_min.a){
p_min = arr[i];
p_min_l = i;
}


相关文档:

JavaScript 获取对象的高度和宽度详细说明

scrollHeight: 获取对象的滚动高度。
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端之间的距离
scrollTop:设置或获取位于对象最顶端和窗口中可见内容的最顶端之间的距离
scrollWidth:获取对象的滚动宽度
offsetHeight:获取对象相对于版面或由父坐标 offsetParent 属性指定的父坐标的高度
offsetL ......

javascript日期对象

1.日期对象的构造
1.1当前日期
          var now = new Date();
    1.2特定日期
var someDate = new Date(yyyy,mm,dd);
    注:月应该是从0开始计数的.
   2. 日期函数的使用可以参照下面的链接. http://www.w3schoo ......

应用最广的十大Javascript框架

近日,知名技术开发网站SYS-CON 媒体列出十个应用最广的Javascript框架,文章说,Javascript库已经成为设计优秀网站的基础,当今几乎所有站点都带有Javascript或Ajax元素。在Web2.0开发大潮中,它也许是最关键的要素。
以下十个十大Javascript框架,你常用其中的几个?
1. script.aculo.us (http://script.aculo.us/)
UR ......

《JavaScript 征途》 读后感

我是一名程序员,使用Java语言进行管理软件开发工作。有一次开发项目中使用JavaScript来丰富用户体验效果,特地认真的学习了一下,从此对JavaScript产生了浓厚的兴趣。有机会参加了由电子工业出版社飞思公司举办的《JavaScript征途》读后感有奖召集活动,获得赠书学习。由于本人文学水平有限,此读后感的用词不当之处还望多 ......

javascript 判断中文字符长度

<script language="javascript">   
String.prototype.gblen = function() {   
    var len = 0;   
    for (var i=0; i<this.length; i++) {   
        if (this.charCodeAt(i)>127 || this.charCodeAt(i) ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号