a self - organizing list machine is provided for reordering items of a list in a manner that achieves both a constant and minimum time complexity . the self - organizing list machine comprises an array of symbol index generators , wherein each symbol index generator has a unique location in the array between zero and n − 1 inclusive , and n is the total number of unique symbols in a symbol alphabet .