1. A data storage system comprising: a memory array including a plurality of memory devices programmable in greater than two states, wherein the memory array is an m×n memory array; a memory control module, executed by a processor, to control operations of storing data to and retrieving data from the m×n memory array; and an encoder module to encode input data for storing to the m×n memory array such that an amount of current leaking through half-selected memory devices in a selected row and a selected column of the m×n memory array is, respectively, less than or equal to nC/2 and mC/2, where C is a largest sum of half-select current magnitudes for pairs of complementary states.