アットウィキロゴ

ranking

package bunseki;
 
import java.io.*;
import java.util.HashMap;
public class pro {
 
       int s,datanumber;
 String[] data=new String[600000];
 String[] name=new String[600000];
  String[] dic=new String[60000];
  HashMap<String,Integer> map = new HashMap<String,Integer>();
   int[] point=new int[60000];
     int[] rank=new int[60000];
     int dicnumber;
 
    public static void main(String[] args) {
        pro t=new pro();
    }
    pro(){
 
        readx("data.csv");
 
        for(s=2;s<datanumber+1;s++){
        String[] x=data[s].split(",");
        name[s-1]=x[1];
        }
 
        int delta=0;
        int sx=0;
        dic[0]="";
 for(s=1;s<datanumber;s++){
    int h=0; 
   if(map.containsKey(name[s]))h=100;
if(h<50)sx=sx+1;
 if(h<50) map.put(name[s],sx);
  if(h<50) dic[sx]=name[s];
 }
 
 dicnumber=sx;
 
 for(s=1;s<datanumber;s++){
  sx=map.get(name[s]);
  point[sx]=point[sx]+1;
    }
 
 ranking();
 
 for(s=1;s<101;s++){
 sx=rank[s];
 System.out.println(dic[sx]+","+point[sx]);
 }
 
 
    }
 
 
      void ranking(){ 
 
int r,s,sx,h; 
int[] ch=new int[80000];
double maxu;
 
    for (r = 1; r < 101; r++) {
        sx = 0;
        maxu = -999999;
        for (s = 1; s < dicnumber + 1; s++) {
            h = 0;
            if (point[s] > maxu) h = h + 1;
            if (ch[s] < 50) h = h + 1;
            if (h == 2) maxu = point[s];
            if (h == 2) sx = s;
        }
        rank[r] = sx;
        ch[sx] = 100;
    }
 
 
}
 
 
     void readx(String file){
 
String str;
BufferedReader br;  
int s;
s=0;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));  
while((str = br.readLine()) != null) {  
s=s+1;
data[s]=str;  
}
br.close();
} catch (IOException e) {System.out.println(e);}  
 
datanumber=s;
 
} 
 
 
}
 
最終更新:2016年08月21日 15:45