排序问题+自动获取变量+循环循环循环...
一、排序问题:假设有4个数组:
A={[1 2],6};
B={[2 3],9};
C={[1],7};
D={[1 3],7};
对ABCD中的后面的数字进行升序排序,A为6,B为9,C、D为7,故顺序为A-C-D-B。
请问这样的排序应该怎样实现?
二、获取变量
对于第一问中的排序结果,我现在需要按照上面排出的顺序A-C-D-B,获取它们中的一维矩阵
例如A中的[1 2],B中的[2 3];C中的[1];D中的[1 3];
并且将获取的矩阵还是按A-C-D-B的顺序自动代入其它函数中。
例如。。。。for A=[1 2];(这里的A=[1 2]是从上面自动代入的,而不是手动输出;因为上面的排序结果不出来,就不知道顺序)
for B=[2 3] ;
for C=[1];
for D=[1 3];
...............
三、循环and循环and循环.......
有这样一个矩阵:F=[1 2 1 1;1 2 1 3;1 3 1 1;1 3 1 3]; 又有个备用数字的集合P=[5 6 7 8 9];
现在要取遍它的每一行(这是第一个循环)
之后对它的这一行数值进行分析(这是第二个循环)
如何分析:现在有两个一维数组,i=[1 2 2 3]; j=[2 3 4 4];
依次取遍 i 与 j 中的数值,(第三个循环)
如,第一次时,i(1)=1;j(1)=2; 那么就让F第一行的第 i(1) 个数字与 j(1) 个数字作比较
这里加个判断:如果 F第一行的第 i(1) 个数字 等于 j(1) 个数字
则 令 F第一行的第 j(1) 个数字换成P中第一个数字(这样做只是为了找一个异于F中元素的值,使F第一行的第 i(1) 个数字 不等于 j(1) 个数字),
这里再加个标志值(n=0),
然后第一行的第i(2)与j(2);i(3)与j(3);i(4)与j(4);分别作了比较时,
只要还有第 i(k) 个数字 等于 j(k) 个数字的
就 对j(k) 个数字 替换P中下一个数字,(这里还需要一个循环)
并让那个标志值n=n+1
最后取遍F中的每一行,对每一行作了数值分析之后,分别输出每一行的标志值,找到标志值最小的那一行,并输出这一行。
可乱吧,我先举个例子
例如取到第一行是[1 2 1 1]
i=[1 2 2 3]; j=[2 3 4 4];,
直到取到 第 i(4) 与 j(4)作比较的时候才有F的这一行的第 i(1) 个数字 等于 j(1) 个数字),就让 j(4)=P(1)
n=n+1,
如果其它行中做完比较时的n都比第一行的大,那么就输出F的第一行 [1 2 1 1] 、标志值n=1。
(求教跪拜)
如果我的表述有问题或是太乱让朋友们没理清的,请一定要回复我。
程序请发至我的邮箱:5566.89@