Fast sort engine
OwnerIdo Dov Coheninventor
Life of this patent
Estimating the term…
Abstract
A method of sorting an array of data elements, the method includes assigning values associated with a monotonic function to the data elements, and sorting the array of data elements by sorting the monotonic function values using a least significant digit (LSD) Radix sort.
Claims20
A method for accelerated radix sorting of an array of unsorted data elements in a computer system that includes a processor configured to execute an instruction set and a memory, the method comprising:
- storing the array of unsorted data elements in the memory;
- using the processor, generating and storing in the memory an array of index values, each index value associated with an unsorted data element and a location of said unsorted data element in the unsorted data elements array;
- using the processor, generating and storing in the memory an array of monotonic function values, wherein a monotonic function value is assigned to each of said unsorted data elements in said unsorted data elements array;
- using the processor establishing a correspondence between each index value in said index values array and each monotonic function value in said monotonic function values array, wherein each index value and the corresponding monotonic function value are associated with a same unsorted data element;
- using the processor sorting the monotonic function values in said stored monotonic function values array using a Radix sort, and storing in the memory said sorted monotonic function values array;
- using the processor sorting said index values in said stored index values array according to its corresponding monotonic function value, and storing in the memory said sorted index values array;
- using the processor generating and storing in the memory an array of new index values, each new index value associated with a monotonic function value in said sorted monotonic function values array and with said monotonic value's corresponding index value in said sorted index values array, each new index value corresponding with a new location in memory for each unsorted data element in said unsorted data elements array;
- and
- using said processor sorting said unsorted data elements from their original location in the memory associated with said index values in said index values array to a new location in the memory associated with said new index values in said new index values array.
A computer system for accelerated radix sorting of an array of unsorted data elements comprising:
- a processor;
- a memory;
- and
- a non-transitory computer readable medium storing instructions executable in said processor and causing said processor to perform operations comprising:
- storing the array of unsorted data elements in the memory;
- using the processor, generating and storing in the memory an array of index values, each index value associated with an unsorted data element and a location of said unsorted data element in the unsorted data elements array;
- using the processor, generating and storing in the memory an array of monotonic function values, wherein a monotonic function value is assigned to each of said unsorted data elements in said unsorted data elements array;
- using the processor establishing a correspondence between each index value in said index values array and each monotonic function value in said monotonic function values array, wherein each index value and the corresponding monotonic function value are associated with a same unsorted data element;
- using the processor sorting the monotonic function values in said stored monotonic function values array using a Radix sort, and storing in the memory said sorted monotonic function values array;
- using the processor sorting said index values in said stored index values array according to its corresponding monotonic function value, and storing in the memory said sorted index values array;
- using the processor generating and storing in the memory an array of new index values, each new index value associated with a monotonic function value in said sorted monotonic function values array and with said monotonic value's corresponding index value in said sorted index values array, each new index value corresponding with a new location in memory for each unsorted data element in said unsorted data elements array;
- and
- using said processor sorting said unsorted data elements from their original location in the memory associated with said index values in said index values array to a new location in the memory associated with said new index values in said new index values array.
A non-transitory computer readable medium storing instructions for accelerated radix sorting of an array of unsorted data elements in a computer system, the instructions executable in a processor and causing the processor to perform operations comprising:
- storing the array of unsorted data elements in the memory;
- using the processor, generating and storing in the memory an array of index values, each index value associated with an unsorted data element and a location of said unsorted data element in the unsorted data elements array;
- using the processor, generating and storing in the memory an array of monotonic function values, wherein a monotonic function value is assigned to each of said unsorted data elements in said unsorted data elements array;
- using the processor establishing a correspondence between each index value in said index values array and each monotonic function value in said monotonic function values array, wherein each index value and the corresponding monotonic function value are associated with a same unsorted data element;
- using the processor sorting the monotonic function values in said stored monotonic function values array using a Radix sort, and storing in the memory said sorted monotonic function values array;
- using the processor sorting said index values in said stored index values array according to its corresponding monotonic function value, and storing in the memory said sorted index values array;
- using the processor generating and storing in the memory an array of new index values, each new index value associated with a monotonic function value in said sorted monotonic function values array and with said monotonic value's corresponding index value in said sorted index values array, each new index value corresponding with a new location in memory for each unsorted data element in said unsorted data elements array;
- and
- using said processor sorting said unsorted data elements from their original location in the memory associated with said index values in said index values array to a new location in the memory associated with said new index values in said new index values array.
Dependencies are inferred from the claim text.