#include #include #include #include "histogram.h" using namespace std; static void find_minmax(const vector& A, double& min, double& max) { min = A[0]; for (auto i = 0; i < A.size(); i++) { if (A[i] < min) { min = A[i]; } } max = A[0]; for (auto i = 0; i < A.size(); i++) { if (A[i] > max) { max = A[i]; } } return; } vector make_histogram(const vector& A, size_t bin) { vectorB(bin); size_t max_count; double max, min; find_minmax(A, min, max); double step = (max - min) / (bin); for (size_t i = 0; i < A.size(); i++) { for (size_t j = 0; j < bin; j++) { if ((A[i] >= (min + j * step)) && (A[i] < (min + (j + 1)*step))) { B[j]++; break; } } } for (size_t i = 0; i < A.size(); i++) { if (A[i] == max) B[bin - 1]++; } return B; }