<>%用登山算法求解背包问题
function []=DengShan(n,G,P,W)
%n是背包的个数,G是背包的总容量,P是价值向量,W是物体的重量向量
%n=3;G=20=[25,24,15];W2=[18,15,10];%输入量
W2=W;
[Y,I]=sort(-P./W2);W1=[];X=[];X1=[];
for i=1:length(I)
W1(i)=W2(I(i));
end
W=W1;
for i=1:n
X(i)=0;
RES=G;%背包的剩余容量
j=1;
while W(j)<=RES
X(j)=1;
RES=RES-W(j);
j=j+1;
end
X(j)=RES/W(j);
end
for i=1:length(I)
X1(I(i))=X(i);
end
X=X1;
disp('装包的方法是');disp(X);disp(X.*W2);disp('总的价值是:');disp(P*X');</P>
<>时间复杂度是非指数的</P>