标签:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> </head> <body> <script> // var arr = [65,97,76,13,27,49,58]; var arr = [1,2,4,3,5,6,7]; //轮数 var m = 0; //次数 var n = 0; //什么情况下,我们可以确定排序完毕? // (if语句中在一次循环下如果代码被执行了,没有排序完毕。) // (一轮for循环之后一次if语句都没有被执行,说明排序完毕了。) //技术点:开闭原则。 //外循环控制轮数(元素个数减一) for(var i=0;i<arr.length-1;i++){ //开闭原则中的开关(默认是开启的) var bool = true; //内循环控制次数(元素个数减一) for(var j=0;j<arr.length-1-i;j++){ //注意:1.怎么比较?(相邻的两个数比较) 2.什么情况下交换位置。(前边数大) //如果判断条件和交换元素位置呢 if(arr[j] > arr[j+1]){ //交换位置 var temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; //不会的同学举手。(没有排序完毕呢) bool = false; } n++; } m++; //内循环中的if语句没有被执行 if(bool){ break; } } console.log(arr); console.log(m); console.log(n); </script> </body> </html>
标签:
原文地址:http://www.cnblogs.com/lcf1314/p/5751571.html