<!--第一种方法-->
<script type="text/javascript">
function sort (arr) {
for (var i = 0;i<arr.length;i++) {
// 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
// (1). 从第一项开始, 依次与数组中所有项(包括它自己)逐个进行比较, 如果当前项
// (当前项是每次比较之后的最大值)大于下一项, 则交换两者的位置;
// (2). 每一轮比较完成之后, 最大值都会被放在合适的位置:
// a. 第一轮比较完成时, 最大值成为数组的最后一项;
// b. 第二轮比较完成时(第二轮比较会将数组最后一项排除在外), 第二大的值会成为数组的倒数第二项;
// c. 第三轮比较完成时(第三轮比较会将数组最后两项排除在外), 第三大的值会成为数组的倒数第三项;
for (var j = 0; j < arr.length-i-1; j++) {
if (arr[j]<arr[j+1]) {
// 9 5 8 2 7 1
// 9 8 5 2 7 1
// 9 8 5 7 2 1
// 9 8 5 7 2 1
var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr;
}
var arr=[ 9,5,8,2,7,1];
alert(sort(arr))
// 该算法的运算次数
// 假设n为数组的长度, 则对该数组进行冒泡排序的运算次数为: Sum(n) = (n2 + 3n) / 2;
// <!--第2种方法-->
// 利用sort方法快速排序
function sort(arr){
return arr.sort(function(a,b){
return a-b;
})
}