本文共 2168 字,大约阅读时间需要 7 分钟。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | <script type= "text/javascript" > /** * js 冒泡排序 */ //var numArr = [-3,-10,0,32,9,3,23]; var numArr = [-1,0,3,23,34,]; var flag = false ; for ( var i = 0; i < numArr.length -1; i++) { //控制比较多少轮 document.writeln( "比较多少轮:" + (i+1) + "<br />" ); for ( var j = 0; j < numArr.length - i -1;j++) { //控制每轮比较的次数 if (numArr[j] > numArr[j+1]) { //交换 var temp = numArr[j]; numArr[j] = numArr[j+1]; numArr[j+1] = temp; flag = true ; } } if (flag) { flag = false ; } else { //禁止循环,这样做的好处:当数组有序时就不要在循环了 break ; } } document.writeln(numArr); </script> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <script type= "text/javascript" > /** * JS的二分查找 * 1.注意事项:二分查找必须针对的是有序的数组,不是有序的数组不能使用二分查找法 * 2.思路:首先找到数组的中间数(midVal),和你要查找的数(findVal)进行比较,如果 * midVal > findVal ,则说明在数组的左边,就把该数组二分(就只在左边查找) */ function binarySearch(arr,findVal,leftIndex,rightIndex) { //防止无穷递归 if (leftIndex > rightIndex) { document.writeln( "找不到" ); return ; } //找到中间这个值 var midIndex = Math.floor((leftIndex + rightIndex)/2); var midVal = arr[midIndex]; //比较 if (midVal > findVal) { //在左边查找 binarySearch(arr,findVal,leftIndex,midIndex - 1); } else if (midVal < findVal) { //在右边查找 binarySearch(arr,findVal,midIndex+1,rightIndex); } else { document.writeln( "找到了,位置为:" + midIndex); return ; } } var arr = [1,2,5,67,89,90]; binarySearch(arr,3,0,arr.length -1); </script> |
==================================================================================
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <script type= "text/javascript" > /*数组的简单行列倒置*/ var arr = [[2,4,6,8],[1,3,5,9],[9,7,4,2]]; //定义一个新的数组 var arr2 = []; //初始化新数组的行数,我认为该数组是规则的,并初始化 for ( var i = 0; i < arr[0].length; i++) { arr2[i] = []; } //动态的添加新数据,遍历旧数据 for ( var i=0; i < arr.length; i++) { for ( var j=0; j < arr[i].length; j++) { arr2[j][i] = arr[i][j]; } } //遍历新数组,显示数据 for ( var i=0; i < arr2.length; i++) { for ( var j=0; j < arr2[i].length; j++) { document.writeln(arr2[i][j] + " " ); } document.writeln( "<br />" ); } </script> |