js 中的 一些简单算法(二)之 双层循环—冒泡排序

1、打印9*9乘法表

思路:脑补一下乘法表的格式,9*9就是有9列、9行组成。行和列都需要由循环控制。

document.write("<table border='1' cellspacing='0' cellpadding='0'>"); //最外面放一个大框
for(var i = 1; i <= 9; i++){   //控制行循环
	document.write("<tr>");
		for(var j = 1; j <= i; j++){   //控制列循环
			document.write("<td>");
			document.write(i + "*" + j + "=" + i * j);
			document.write("</td>");
		}
	document.write("</tr>");
}
document.write("</table>");
2、打印正方形(10 * 10).

思路:类似的正方形也是10行和10列组成

for(var i = 1; i <= 10; i++){  //外层循环控制行
	for(var j = 1; j <= 10; j++){ //内层循环控制列
		document.write("☻");
	}
	document.write("<br />");
}
3、打印直角三角形。

思路:类似的直角三角形也是由行和列组成,只不过有一个条件,就是下一行始终比上一行多一列。

for(var i = 1; i <= 10; i++){  //外层循环控制行
	for(var j = 1; j <= i; j++){ //内层循环控制列
		document.write("☻");
	}
	document.write("<br />");
}

小结:注意每进行一次外层循环,内层循环要彻底循环完毕,才会进入下一次外层循环。


4、冒泡排序。

给出一组数,让进行从小到大排列。

思路:牵扯到数组中里的每个数都要进行两两比较大小。

var array = [65, 97, 76, 13, 27, 49, 58];
for (var i = 1; i < array.length; i++) {  //外层循环控制趟数
    var isSort = true;
    for (var j = 0; j < array.length - 1; j++) {  //内层循环控制两两比较大小的次数
        if (array[j] > array[j + 1]) {
            var tmp = array[j];
            array[j] = array[j + 1];
            array[j + 1] = tmp;
            isSort = false;
        }
    }
    if (isSort) {
        break;
    }
}
console.log(array);
趟数:数组中,每一个数都要和除自己外的其他数进行比较。每个数和其他数全都比较完了称为一趟。

         内层循环控制的是保证每个数都会和其他数进行比较并排列位置。














  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值