zoukankan      html  css  js  c++  java
  • 常用的经典算法 js程序

    包括:冒泡、选择、插入和快速算法的js实现。

    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="utf-8">
    	<title>相关算法实现</title>
    </head>
    <body>
    	
    	<p>jiayou</p>
    </body>
    <script type="text/javascript">
    	window.onload = function(){
    		
    // 冒泡算法
    		function rangemao(str){
    			var len= str.length;
    			
    			for(var i=0;i<len-1;i++){
    				for(var j=0;j<len-1-i;j++){
    					if(str[j]>str[j+1]){
    						var temp = str[j];
    						str[j]=str[j+1];
    						str[j+1] = temp;
    					}
    				}
    			}
    			return str;
    		}
    // 选择算法
    
    		function rangexuan(str){
    			var mindex,temp;
    			var len = str.length;
    			for(var i=0;i<len-1;i++){
    				mindex = i;
    				for(var j=i+1;j<len;j++){
    					if(str[j]<str[mindex]){
    						mindex = j;
    					}
    				}
    				temp = str[i];
    				str[i]=str[mindex];
    				str[mindex] = temp;
    			}
    			return str;
    		}
    // 插入算法
    		function rangein(str){
    			var len = str.length;
    			var preindex,current;
    
    			for(var i=1;i<len;i++){
    				current = str[i];
    				preindex = i-1;
    				while(preindex >= 0 && str[preindex]>current){
    					str[preindex+1] = str[preindex];
    					preindex--;
    				}
    				str[preindex+1] = current;
    
    
    			}
    			return str;
    
    		}
    // 快速算法
    		function rangeQuick(str) {
    			if(str.length<=1){
    				return str;
    			}
    			var mid = Math.floor(str.length/2);
    			var midValue = str.splice(mid,1);
    			var left = [];
    			var	right = [];
    			for (var i=0; i<str.length;i++){
    				if(str[i]<midValue){
    					left.push(str[i]);
    				}else {
    					right.push(str[i]);
    				}
    			}
    
    			return arguments.callee(left).concat(midValue,arguments.callee(right));
    
    		}
    
    		var arr = ["1","3","s","2","9"];
    		alert(rangemao(arr));
    		alert(rangexuan(arr));
    		alert(rangein(arr));
    		alert(rangeQuick(arr));
    
    
    	}
    </script>
    </html>
    
  • 相关阅读:
    python12306抢票
    函数、迭代器、生成器、装饰器
    类(面向对象、增删改查、继承、多态、封装、反射)
    js循环、异常、函数
    js引入、注释、事件
    天融信护网面试
    Java URL处理
    Java多线程编程
    Java网络编程
    Java序列化
  • 原文地址:https://www.cnblogs.com/1833lljy/p/8930862.html
Copyright © 2011-2022 走看看