Javascript的冒泡排序和二分查找
2013-10-13 22:42
288 查看
<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>
<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>==================================================================================
<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>
本文出自 “我的JAVA世界” 博客,请务必保留此出处http://hanchaohan.blog.51cto.com/2996417/1308498
相关文章推荐
- JSF
- 读《改善js程序的188个建议》
- JavaScript学习--------01(读W3CShool有感)
- HTML5知识:KineticJS里面Canvas形象的事件!
- HTML5里面的Canvas听或不听KineticJS事件
- jsp自定义标签
- JSP与Servlet的区别
- JS与JSP传递中文乱码
- Javascript设计模式之我见:状态模式
- JavaScript编码规范
- 黑马程序员:JavaScript整理
- Implementation of Captcha in Javascript
- 页面所有元素加载完成之后执行某个js函数
- jsp study 5 条件及循环控制
- JSTL的fn函数
- jsp study 4 操作符
- 在博客文章插入“可运行"js代码-博客园
- JS基本类型特性总结
- jsp用户数据保存
- Javascript的堆和栈的简单理解