易截截图软件、单文件、免安装、纯绿色、仅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获取不重复随机数

 
<!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>随机 ......

href="#"与href="javascript:void(0)"的区别

我想使用过ajax的都常见这样的代码:
<a href="javascript:doTest2();void(0);">here</a>
但这儿的void(0)究竟是何含义呢?
Javascript中void是一个操作符,该操作符指定要计算一个表达式但是不返回值。
void 操作符用法格式如下:
1. javascript:void (expression)
2. javascript:void expression
expr ......

使用Javascript同时提交多个Web表单的方法


1问题来自一位网友的提问:
web页面里有多个表单,每个表单对应着某一类数据操作。
比如一个详细的简历信息页面分 1、个人资料 2、工作经验 3、项目经验 4、其他信息 4个表单。
一般的需求是允许用户单独提交其中任何一个表单到下一个页面进行修改操作(也就是说页面有4个不同的修改按钮,点击哪个按钮则只提交某一个表 ......

JavaScript实现全选和反选 超简单

<body>
    <form id="form1" runat="server">
    请选择你的爱好:
    <div>
            <input name="Che" type="checkbox" />足球
       & ......

JavaScript获取可见页面中心位置

css获取页面中心位置
.fixed
{
FONT-SIZE: 30pt;
color : #1A6841;
left:expression(eval(document.body.clientWidth)/2-150);
top:expression(eval(document.body.clientHeight)/2-25);
width:300px;
height:50px;
border:green 1px solid;
background:#99CCFF;
+position:absolute;
+left:expression(ev ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号