|
以前学习冒泡算法,总是弄不清楚n和n-1等一些变量的关系,原因是没有弄明白它的真正含义,今天写了一个冒泡算法的JS小程序,终于弄明白了。 复制代码 代码如下: var R1=new Array(); R1[1]=35; R1[2]=55; R1[3]=65; R1[4]=20; R1[5]=30; R1[6]=25; R1[7]=0; R1[8]=7; R1[9]=5; R1[10]=3; var R2=new Array(35,55,65,20,30,25,0,7,5,3); var R3=new Array(35,55,65,20,30,25,0,7,5,3);
function BubbleSort1() { var n=R1.length-1; for(var i=1;i<n;i++) { var flag=false; for(var j=n-1;j>=i;j--) { var temp; if(R1[j+1]<R1[j]) { temp=R1[j+1]; R1[j+1]=R1[j]; R1[j]=temp; } flag=true; } if(!flag) return; } }
function BubbleSort2() { var n=R2.length; for(var i=0;i<n-1;i++) { var flag=false; for(var j=n-2;j>=i;j--) { var temp; if(R2[j+1]<R2[j]) { temp=R2[j+1]; R2[j+1]=R2[j]; R2[j]=temp; } flag=true; } if(!flag) return; } } function BubbleSort3() { var n=R3.length; for(var i=0;i<n-1;i++) { var flag=false; for(var j=n-1;j>i;j--) { var temp; if(R3[j]<R3[j-1]) { temp=R3[j]; R3[j]=R3[j-1]; R3[j-1]=temp; } flag=true; } if(!flag) return; } }
调用它们的HTML文件代码如下: 复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>BubbleSort</title> <script language="javascript" src="bubblesort.js"></script> <script language="javascript"> BubbleSort1(); BubbleSort2(); BubbleSort3(); for(var z=1;z<11;z++) { document.write(R1[z]);
} document.write("<br/>"); for(var k=0;k<10;k++) { document.write(R2[k]);
} document.write("<br/>"); for(var k=0;k<10;k++) { document.write(R3[k]);
} </script> </head> <body> </body> </html>
|
|