The paper aims to study the problem of biclustering for gene expression data, which arises in the program of characterizing DNA clone libraries, especially in the oligonucleotide fingerprinting of ribosomal RNA genes method. Gene expression data are arranged in data matrices. The goal of biclustering is to find a submatrix, i.e., subset of rows and a subset of columns. If each element of a matrix is 0 or 1, biclustering is closely related to finding bicliques in a bipartite. The k-BVP (short for k biclique vertex partition problem) is to decide whether the vertices of a bipartite can be partitioned into k groups, and each group induce a biclique. 2-BVP can be solved in polynomial time, but it is an open problem whether or not k-BVP is in P for all k3. On the one hand, present an O(2|V|-3) algorithm to decide whether or not a bipartite graph contains a 3 biclique vertex partition. On the other hand, give an algorithm to produce simulation data. The testing results show that the algorithm can find a 3-BVP of a bipartite if there exist a 3-BVP in the bipartite.