Posts

Showing posts with the label Histogram

In Java, Extensible Histogram of Array of Integers

Image
import java.util.Scanner; public class Histogram { private int min; private int max; private int[]stats; public Histogram(int m, int n){ assign(m, n, Math.min(m, n)); } private void assign(int mn , int mx, int mi){ min = Math.min(mn, mi); max = Math.max(mx, mi); stats = new int[max-min+1]; } public boolean add(int i){ boolean done = false; if(min <= i && max >= i){ i -= min; stats[i] ++; done = true; } return done; } public void addOutOfRange(int i){ if(add(i)) return; int[]tmp = stats; int j = min; assign(min, max, i); System.arraycopy(tmp, 0, stats, j, tmp.length); add(i); } public String toString(){ StringBuilder sb = new StringBuilder(); for(int i = 0, j; stats.length > i; i++){ if(0 != i)sb.append(' '); sb.append(min+i).append(':'); for(j = 1; stats[i] >= j; j++) sb.append('*'); } return sb.toString(); } public static v...