1. A computer-implemented method for clustering a plurality of data elements, the method comprising: generating, by a computer, a bit vector for each of the plurality of data elements based on vector of reals associated with a data element of the plurality of data elements and a plurality of random vectors, thereby generating a plurality of bit vectors; creating, by the computer, a histogram based on the plurality of bit vectors; partitioning, by the computer, the histogram into a plurality of regions; creating, by the computer, a bit mask for each of the plurality of regions; and clustering, by the computer, each of the plurality of data elements into one of a plurality of clusters by comparing the bit vector for each of the plurality of data elements with each of the bit masks, wherein the comparing comprises processing the bit vector and each of the bit masks using a bit operation and assigning each of the plurality of data elements associated with the bit vector to the cluster with the corresponding bit mask generating greatest number of ones in the bit operation.