Patent ID: 8010540

Claim:
A computer program product, comprising a computer readable storage medium having a computer readable program code stored therein, said computer readable program code containing instructions configured to be executed by a processor of a computer system to implement a method, said method comprising executing an algorithm by a processor of the computer system, said executing said algorithm comprising in-place sorting at least two sequences of binary bits in ascending or descending order of a value associated with each sequence and in a time period denoted as a sorting execution time, said sequences being stored contiguously in an array within a memory device of the computer system prior to said sorting, each sequence comprising contiguous fields of bits, said in-place sorting comprising executing program code at each node of a linked execution structure, each node comprising a segment of the array, said executing program code being performed in a hierarchical sequence with respect to said nodes, said executing program code at each node including: dividing the segment of the node into groups of sequences based on a mask field having a mask width, each group having a unique mask value of the mask field; and in-place rearranging the sequences in the segment, said rearranging resulting in each group comprising only those sequences having the unique mask value of the group, wherein said in-place rearranging comprises executing at least one domino chain with respect to sequences within the segment, wherein said executing at least one domino chain comprises performing for each domino chain an ordered movement of N sequences within the segment such that N is at least 2, and wherein said performing the ordered movement of the N sequences comprises: moving a first sequence of the N sequences from an initial position of the first sequence into a position of the segment occupied by a second sequence of the N sequences, resulting in the initial position being empty; after said moving the first sequence, if N exceeds 2 then performing a loop from I=2 to I=N−1 for iteration I of the loop, wherein iteration I comprises moving the I th sequence into a position of the segment occupied by a (I+1) th sequence of the N sequences; after said moving the (N−1) th sequence into the position of the segment occupied by the N th sequence, then moving the N th sequence into the empty initial position of the segment.