1. An apparatus comprising: a memory; and a compression engine comprising circuitry, the compression engine to: assign weights to a plurality of first symbols of a data set, a weight representing a frequency of a corresponding first symbol in the data set; perform a partial sort of the first symbols based on the assigned weights; generate at least a portion of a Huffman tree based on the partial sort, wherein the generation of at least a portion of the Huffman tree is performed concurrently with further sorting of at least some of the first symbols; and create a plurality of Huffman codes for the plurality of first symbols based on the Huffman tree.