clear all;

clc;

close all;

figure;

%%

m2 = load('申请内存大小.txt');

m = load('内存利用率ff.txt');

m1 = load('每次申请查询次数ff.txt');

m3 = load('分配记录IDff.txt');

m = m';

m1 = m1';

m2 = m2';

m3 = m3';

n = length(m);

n1 = length(m1);

n2 = length(m2);

count = sum(m1) / n1

num = sum(m2) / n2

x = 1:n;

for i = 1:n

   xx = 0;

   for j = 1:i

       xx = xx + m(j);

   end

   y(i)= xx / i;

end

s1 = y(n);

plot(x,y,'r');

title('内存利用率曲线图');

xlabel('申请次数');

ylabel('内存平均利用率');

hold on;

clear m n x y xx m1 m2 m3

%%

m = load('内存利用率nf.txt');

m1 = load('每次申请查询次数nf.txt');

m3 = load('分配记录IDnf.txt');

m = m';

m1 = m1';

m3 = m3';

n = length(m);

n1 = length(m1);

n3 = length(m3);

x = 1:n;

count = sum(m1) / n1

for i = 1:n

   xx = 0;

   for j = 1:i

       xx = xx + m(j);

   end

   y(i)= xx / i;

end

s2 = y(n);

plot(x,y,'b');

hold on;

clear m n x y xx m1 m2 m3

%%

m = load('内存利用率bf.txt');

m1 = load('每次申请查询次数bf.txt');

m3 = load('分配记录IDbf.txt');

m = m';

m1 = m1';

m3 = m3';

n = length(m);

n1 = length(m1);

n3 = length(m3);

x = 1:n;

count = sum(m1) / n1

for i = 1:n

   xx = 0;

   for j = 1:i

       xx = xx + m(j);

   end

   y(i)= xx / i;

end

s3 = y(n);

plot(x,y,'g');

hold on;

clear m n x y xx m1 m2 m3

%%

m = load('内存利用率wf.txt');

m1 = load('每次申请查询次数wf.txt');

m3 = load('分配记录IDwf.txt');

m = m';

m1 = m1';

m3 = m3';

n = length(m);

n1 = length(m1);

n3 = length(m3);

x = 1:n;

count = sum(m1) / n1

for i = 1:n

   xx = 0;

   for j = 1:i

       xx = xx + m(j);

   end

   y(i)= xx / i;

end

s4 = y(n);

plot(x,y,'m');

hold on;

clear m n x y xx m1 m2 m3

legend('首次适应算法','循环首次适应算法','最佳适应算法','最坏适应算法');

%%

figure;

s =[s1,s2,s3,s4];

x = 1:length(s);

bar(x,s,0.5);

for i = 1:length(s)

   text(i,s(i),num2str(s(i)),'VerticalAlignment','bottom','HorizontalAlignment','center');

end

title('内存平均利用率的条形图');

xlabel('申请次数');

ylabel('y内存平均利用率');

set(gca,'xticklabel',{'首次适应','循环首次适应','最佳适应','最坏适应'});