循环在动态洗牌列表中

时间:2014-09-26 03:28:27

标签: java sorting graph-algorithm

情况如下:给出两个列表[A,B,C,D]和[Ob,Od,Oa,Oc](对象O有参数A,B,C或D)

首先列出的是根据具体情况排序(如果A是产品,它是最便宜的,D是最贵的)。我们想以这种方式做一个2-for循环:

List products = [A,B,C,D];
List shops = [Ob,Od,Oa,Oc];
int k=0;
for(Object i : products)
    for(Object o : shops)
        // 1st loop i is A, and o is Ob
        consume(A,Ob) // We are reducing number of A depending on Ob requirement
        k++; // 1st loop k = 0;

对于Ob,我们知道B比A好。因此,在第一个循环中,我想在A和B之间切换,所以我的列表变为[B,A,C,D]。 / p>

List products = [B,A,C,D]; // during the first loop, this list was shuffled.    
List shops = [Ob,Od,Oa,Oc];
int k=0;
for(Object i : products)
    for(Object o : shops)
        // 2nd loop i is B, and o is Od --> B because we shifted
        consume(A,Ob) // We are reducing number of A depending on Ob requirement
        k++; // 2nd loop k = 1;

在最后一个循环中,我们应该有[B,D,A,C]。

当然,在并行化系统中执行此操作,每个列表[A,B,C,D]组合一个线程,然后返回最佳解决方案是可行的,但很难。

无论如何,在Java中是否要重新排列我们正在迭代的列表?

0 个答案:

没有答案