zoukankan      html  css  js  c++  java
  • js:数据结构笔记14--高级算法

    动态规划:

    递归是从顶部开始将问题分解,通过解决所有分解出小问题来解决整体问题;

    动态规划从底部开始解决问题,将所有小问题解决,然后合并掉一个整体解决方案;

      

    function dynFib(n) {
    	var val = [];
    	for(var i = 1; i <= n; ++i) {
    		val[i] = 1;
    	}
    	if(n === 1) {
    		return 1;
    	} else {
    		for(var i = 2; i <= n; ++i) {
    			val[i] = i * val[i-1];
    		}
    		return val[n];
    	}
    }
    
    function iterFib(n) {
    	var last = 1,
    	    result = 1;
    	for(var i = 2; i <= n; ++i) {
    		result = last * i;
    		last = result;
    	}
    	return result;
    }
    

    背包问题:

    • 递归解决:
    function max(a,b) {
    	return (a > b) ?  a : b;
    }
    function knapsack(capacity,size,value,n) {
    	if(n == 0 || capacity ==0) {
    		return 0;
    	}
    	if(size[n -1] > capacity) {
    		return knapsack(capacity,size,value,n-1);
    	} else {
    		return max(value[n - 1] + 
    					knapsack(capacity - size[n - 1],size,value,n-1),
    					knapsack(capacity,size,value,n-1));
    	}
    }
    
    var value = [4,5,10,11,13],
    	size = [3,4,7,8,9],
    	capacity = 16,
    	n = 5;
    console.log(knapsack(capacity,size,value,n));
    
    •  动态规划:
    function max(a,b) {
    	return (a > b) ?  a : b;
    }
    function dknapsack(capacity,size,value,n) {
    	var k = [];
    	for(var i = 0; i <= capacity + 1; ++i) {
    		k[i] = [];
    	}
    	for(var i = 0; i <= n; ++i) {
    		for(var w = 0; w <= capacity; ++w) {
    			if(i == 0 || w == 0) {
    				k[i][w] = 0;
    			} else if(size[i - 1] <= w) {
    				k[i][w] = max(value[i - 1] + k[i - 1][w - size[i - 1]], k[i - 1][w]);
    			} else {
    				k[i][w] = k[i - 1][w];
    			}
    		}
    	}
    	return k[n][capacity];
    }
    
    var value = [4,5,10,11,13],
    	size = [3,4,7,8,9],
    	capacity = 16,
    	n = 5;
    console.log(dknapsack(capacity,size,value,n));
    

      

  • 相关阅读:
    。。
    前端jQuery选择器
    杂物柜。。。。
    (转载)pycharm相关问题
    http协议基础 2.HTTP的三次握手,四次挥手
    http协议基础 1.TCP/IP五层模型 与OSI七层协议
    yum无法使用解决方法(比较全,以后如果遇到别的问题还会添加)
    3
    2
    1
  • 原文地址:https://www.cnblogs.com/jinkspeng/p/4049921.html
Copyright © 2011-2022 走看看