|
发表于 2009-7-20 14:52:00
|
显示全部楼层
Re:RPG排序算法,请MATLAB高手赐教!
我用的matlab是7.0版本,以下是.m文件源代码:
clear;
P = xlsread('rpg.xls','1');
Q = xlsread('rpg.xls','2');
dim=size(P,2);
P1=ones(2,dim);
N=10;
a=P(1, ;
b=P(2,:);
[P11,ind1]=sort(P(1,:));
P1(2,:)=P(2,ind1);
P1(1,:)=P11;
a=cat(1,a,sort(a));
b=cat(1,P(2,:),P1(2,:));
j=1;
for k=1:N
P1(1,:)=P1(1,:)-P1(1,1)*ones(1,dim);
a=cat(1,a,P1(1,:));
b=cat(1,b,P1(2,:));
P1(1,1)=P(1,P1(2,1))+Q(P1(2,1));
[P11,ind1]=sort(P1(1,:));
P1(2,:)=P1(2,ind1);
P1(1,:)=P11;
a=cat(1,a,P1(1,:));
b=cat(1,b,P1(2,:));
end
xlswrite('rpg.xls',a,'a');
xlswrite('rpg.xls',b,'b');
在楼主的数列1(20,5,26)
数列2(3,20,10)
例子里,计算结果如下:
20 5 26
5 20 26
0 15 21
15 21 25
0 6 10
6 10 23
0 4 17
4 17 36
0 13 32
13 25 32
0 12 19
12 19 23
0 7 11
7 11 25
0 4 18
4 18 36
0 14 32
14 23 32
0 9 18
9 18 25
0 9 16
9 16 23
排序如下
1 2 3
2 1 3
2 1 3
1 3 2
1 3 2
3 2 1
3 2 1
2 1 3
2 1 3
1 2 3
1 2 3
2 3 1
2 3 1
3 1 2
3 1 2
1 2 3
1 2 3
2 1 3
2 1 3
1 3 2
1 3 2
3 2 1
不知道是不是符合楼主的原意? |
|