比较数组中的数据点

问题描述 投票:0回答:1

我想在一个结构数组中比较3个数据点。以某种方式重新组合:

Example: In an Array[4] 
X...Datapoints wich should be compared

XXXO
XXOX
XOXX
OXXX

for (int i = 0; i < 12; i++){
 for (int j = 0; j < 12; j++){
  for (int k = 0; k < 12; k++){
   if( i != j && j != k && k != i ){    // prohibits sets of 111 223 ...
    if( isSET(array[a], array[b], array[c]) == 1 ){
      Tset[n].a = a;
      Tset[n].b = b;
      Tset[n].c = c;
      n++;
    }
   }
  }
 }
}

如果我运行代码,我将得到6套相同的套。例如

a b c
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1

but I only need one of those.    

是否有这样做的好方法?

对不起,我很抱歉。

c optimization
1个回答
0
投票
for (int i = 0; i < 12-2; i++){
 for (int j = i+1; j < 12-1; j++){
  for (int k = j+1; k < 12; k++){
    if( isSET(array[i], array[j], array[k]) == 1 ){
      set[n].a = i;
      set[n].b = j;
      set[n].c = k;
      n++;
   }
  }
 }
}
© www.soinside.com 2019 - 2024. All rights reserved.