OSDN Git Service

fixed bytecode definition
[stigmata/stigmata-plugins.git] / wsp / src / main / java / jp / sourceforge / stigmata / birthmarks / wsp / WeightCalculator.java
1 package jp.sourceforge.stigmata.birthmarks.wsp;
2
3 public class WeightCalculator{
4     
5     public int calculateWeight(int[][] wcs){
6         int weight = 0;
7         boolean[][] availableFlag = new boolean[wcs.length][wcs[0].length];
8         for(int i = 0; i < wcs.length; i++){
9             for(int j = 0; j < wcs[i].length; j++){
10                 availableFlag[i][j] = true;
11             }
12         }
13
14         int length = wcs.length;
15         if(length < wcs[0].length){
16             length = wcs[0].length;
17         }
18         for(int k = 0; k < length; k++){
19             int max = Integer.MIN_VALUE;
20             int column = -1;
21             int row = -1;
22             for(int i = 0; i < wcs.length; i++){
23                 for(int j = 0; j < wcs[i].length; j++){
24                     if(max < wcs[i][j] && availableFlag[i][j]){
25                         max = wcs[i][j];
26                         row = i;
27                         column = j;
28                     }
29                 }
30             }
31             if(column >= 0 && row >= 0){
32                 for(int i = 0; i < wcs.length; i++){
33                     availableFlag[i][column] = false;
34                 }
35                 for(int j = 0; j < wcs[0].length; j++){
36                     availableFlag[row][j] = false;
37                 }
38                 weight += wcs[column][row];
39             }
40         }
41
42         return weight;
43     }
44 }