Sorting
AssigneeAb Initio Technology LLC
InventorsCraig W. Stanfill, Carl Richard Feynman
Life of this patent
Estimating the term…
Abstract
Systems and techniques are disclosed that include in one aspect a computer implemented method storing a received stream of data elements in a buffer, applying a boundary condition to the data elements stored in the buffer after receiving each individual data element of the stream of data elements, and producing one or more data elements from the buffer based on the boundary condition as an output stream of data elements sorted according to a predetermined order.
Claims84
A computer implemented method, including:
- storing an initial data element in a buffer;
- receiving, by a computer, a plurality of data elements;
- storing, by a computer, each of the received plurality of data elements in the buffer, in which after each received individual data element is stored in the buffer, the computer identifies a smallest or largest data element from the data elements stored in the buffer, calculates a difference between the smallest or largest data element and the received individual data element, comparing the difference with a maximum allowable difference value, and determining whether the difference exceeds the maximum allowable difference value indicating that a boundary condition is not satisfied;
- and
- when the boundary condition is not satisfied by one or more of the data elements that are stored in the buffer, ejecting, by the computer, one or more data elements from the buffer, wherein the ejected data elements form an output stream of data elements sorted according to a predetermined order.
A computer implemented method, including:
- storing an initial data element in a buffer;
- receiving, by a computer, a plurality of data elements;
- after receiving each individual data element of the plurality of data elements, the computer identifies a smallest or largest data element from the data elements stored in the buffer, calculates a difference between the smallest or largest data element and the received individual data element, compares the difference with a maximum allowable difference value, and determines whether the difference exceeds the maximum allowable difference value indicating that a boundary condition is not satisfied;
- storing, by a computer, one or more data elements of the plurality of data elements when the difference does not exceed the maximum allowable difference value indicating that the boundary condition is satisfied;
- and
- ejecting, by a computer, one or more data elements when the boundary condition is not satisfied by one or more of the data elements that are stored in the buffer, wherein the ejected data elements form an output stream of data elements sorted according to a predetermined order.
A non-transitory computer-readable storage device storing a computer program for sorting data elements, the computer program including instructions for causing a computing system to:
- store an initial data element in a buffer;
- receive a plurality of data elements;
- and
- process the received plurality of data elements, the processing including:
- storing each of the received data elements in a buffer, in which after each received individual data element is stored in the buffer, the processing includes identifying a smallest or largest data element from the data elements stored in the buffer, calculating a difference between the smallest or largest data element and the received individual data element, comparing the difference with a maximum allowable difference value, and determining whether the difference exceeds the maximum allowable difference value indicating that a boundary condition is not satisfied, and
- when the boundary condition is not satisfied by one or more of the data elements that are stored in the buffer, ejecting one or more data elements from the buffer, wherein the ejected data elements form an output stream of data elements sorted according to a predetermined order.
A computing system for sorting data elements, the computing system including:
- an input device for receiving a plurality of data elements;
- a data storage system for storing the received plurality of data elements in a buffer;
- and
- at least one processor coupled to the data storage system and configured to process the received plurality of data elements, the processing including:
- storing each of the received plurality of data elements in a buffer, in which after each received individual data element is stored in the buffer, the processing includes identifying a smallest or largest data element from the data elements stored in the buffer, calculating a difference between the smallest or largest data element and the received individual data element, comparing the difference with a maximum allowable difference value, and determining whether the difference exceeds the maximum allowable difference value indicating that a boundary condition is not satisfied;
- and
- when the boundary condition is not satisfied by one or more of the data elements that are stored in the buffer, ejecting one or more data elements from the buffer, wherein the ejected data elements form an output stream of data elements sorted according to a predetermined order.
A computing system for sorting data elements, the computing system including:
- means for storing an initial data element in a buffer;
- means for receiving a plurality of data elements;
- means for processing the received plurality of data elements, the processing including:
- storing each of the received data elements in a buffer, in which after each received individual data element is stored in the buffer, the processing includes identifying a smallest or largest data element from the data elements stored in the buffer, calculating a difference between the smallest or largest data element and the received individual data element, comparing the difference with a maximum allowable difference value, and determining whether the difference exceeds the maximum allowable difference value indicating that a boundary condition is not satisfied, and
- when the boundary condition is not satisfied by one or more of the data elements that are stored in the buffer, ejecting one or more data elements from the buffer, wherein the ejected data elements form an output stream of data elements sorted according to a predetermined order.
A non-transitory computer-readable storage device storing a computer program for sorting data elements, the computer program including instructions for causing a computing system to:
- store an initial data element in a buffer;
- receive a plurality of data elements;
- after receiving each individual data element of the plurality of data elements, identify a smallest or largest data element from the data elements stored in the buffer, calculate a difference between the smallest or largest data element and the received individual data element, compare the difference with a maximum allowable difference value, and determine whether the difference exceeds the maximum allowable difference value indicating that a boundary condition is not satisfied;
- store one or more data elements of the plurality of data elements when the difference does not exceed the maximum allowable difference value indicating that the boundary condition is satisfied;
- and
- eject one or more data elements when the boundary condition is not satisfied by one or more of the data elements that are stored in the buffer, wherein the ejected data elements form an output stream of data elements sorted according to a predetermined order.
A computing system for sorting data elements, the computing system including:
- an input device for receiving a plurality of data elements;
- a data storage system for storing data elements in a buffer that has an initial data element;
- and
- at least one processor coupled to the data storage system and configured to process the received plurality of data elements, the processing including:
- after receiving each individual data element of the plurality of data elements, identifying a smallest or largest data element from the data elements stored in the buffer, calculating a difference between the smallest or largest data element and the received individual data element, comparing the difference with a maximum allowable difference value, and determining whether the difference exceeds the maximum allowable difference value indicating that a boundary condition is not satisfied;
- storing one or more data elements of the plurality of data elements when the difference does not exceed the maximum allowable difference value indicating that the boundary condition is satisfied;
- and
- ejecting one or more data elements when the boundary condition is not satisfied by one or more of the data elements that are stored in the buffer, wherein the ejected data elements form an output stream of data elements sorted according to a predetermined order.
Dependencies are inferred from the claim text.