We propose an efficient method to learn a compact and discriminative dictionary for visual categorization, in which the dictionary learning is formulated as a problem of graph partition. Firstly, an approximate kNN graph is efficiently computed on the data set using a divide-and-conquer strategy. And then the dictionary learning is achieved by seeking a graph topology on the resulting kNN graph that maximizes a submodular objective function. Due to the property of diminishing return and monotonicity of the defined objective function, it can be solved by means of a fast greedy-based optimization. By combing these two efficient ingredients, we finally obtain a genuinely fast algorithm for dictionary learning, which is promising for large-scale datasets. Experimental results demonstrate its encouraging performance over several recently proposed dictionary learning methods.