示例,我有一个数组:
a = [2 3 1 2 4 5 6 4];
b = sort(a);
b = [1 2 2 3 4 4 5 6];
现在我想要结合a和b的两个值:
c = [21 32 12 23 44 54 65 46]
然后我做了那种c:
d = [12 21 23 32 44 46 54 65]
我再次从c和d组合(c中的第一个,第二个c和第一个d的相同值,最后一个d):
e = [212 321 123 232 444 546 654 465]
然后我做那种e:
f = [123 212 232 321 444 465 546 654]
我再次从e和f组合:
g = [2123 3212 1232 2321 4444 5465 6546 4654]
等到a的长度等于8。
请帮帮我。
答案 0 :(得分:3)
试试这个:
a = [2 3 1 2 4 5 6 4]
for m=2:8
b = sort(a)
t = round(b-10*floor(b/10))
a = 10*a+t
end
在我看来,算法只是将每个已排序列表的最后一位数字添加到未排序列表中的相应数字。 t
只是b
中的最后一位数字,然后10*a+t
会移动a
中的现有数字,并将t
放在最后。如果我误解了目标这是错误的算法,请道歉,但它适用于你的例子。我想你需要说服自己代码是否符合你的规则。