冒泡排序的概述:通过遍历数列的方法,一次比较两个数,根据大小调换位置,从而达到升序的 效果。
步骤:
- 定义一个含有多个元素的数组。
- 建立两个for循环,外循环用于遍历数组,内循环用于遍历数组中的元素。
- 内循环每一次都从数组的第一项开始,与下一项进行比较,在根据大小进行位置的调换。
var arry = [1, 0, 5, 6, 9, 120, 7, 56, 3, 2];//定义数组
var len = arry.length; //计算数组的长度
document.write('原始数据:' + arry, '<br>', '<br>');
function sort(arry) { //定义方法
for (var i = 0; i < len - 1; i++) { //外循环遍历整个数组(轮数)
var bool = true;
for (var j = 0; j < len - 1 - i; j++) { //内循环用于遍历数组的元素(次数)
//判断前后两个数的大小决定是否调换位置
if (arry[j] > arry[j + 1]) {
var temp = arry[j]; //引入第三方元素进行位置的调换
arry[j] = arry[j + 1];
arry[j + 1] = temp;
bool = false;
}
document.write('第' + (i + 1) + '轮' + '第 ' + (j + 1) + '次排序:' + arry, '<br>');//打印每一次的排序结果
}
/* bool值为false则说明执行了调换位置的操作,如果为true
则说明调换位置的操作未执行, 隐深含义是已经将数列由小到大的顺序排列
好了,不需要再去遍历数组,不仅提高了代码的运行速度而且节省了内存空间。*/
if (bool) {
break;
}
document.write('第' + (i + 1) + '轮排序:' + arry, '<br>'); //打印每一轮的排序结果
}
return arry;
}
document.write('最终排序:'+sort(arry)); //调用方法在页面输出最终排序结果。