Merging of sorted lists using array pair

US10552397B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10552397-B2
Application numberUS-201615232315-A
CountryUS
Kind codeB2
Filing dateAug 9, 2016
Priority dateMay 13, 2013
Publication dateFeb 4, 2020
Grant dateFeb 4, 2020

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

The formulation of a merged sorted list from multiple input sorted lists in multiple phases using an array pair. Initially, the first array is contiguously populated with the input sorted lists. In the first phase, the first and second input sorted lists are merged into a first intermediary merged list within the second array. Each subsequent phase merges a prior intermediary merged list resulting from the prior phase and, a next input sorted list in the first array to generate a next intermediary merged list, or a merged sorted list if there or no further input in the first array. The intermediary merged lists alternate between the first array and the second array from one phase to the next phase.

First claim

Opening claim text (preview).

What is claimed is: 1. A computing system comprising: one or more hardware processors; and one or more storage devices having stored computer-executable instructions that are executable by the one or more hardware processors for implementing a method for formulating a merged sorted list, wherein the method includes: an act of accessing a plurality of input sorted lists including three or more input sorted lists; an act of contiguously populating a first array with the plurality of input sorted lists; and an act of using the first array and a second array to merge the plurality of input sorted lists into a merged sorted list, wherein the merging occurs by merging the first and second sorted lists in a plurality of phases, wherein the merging of the first and second sorted lists occurs in a first phase of the plurality of phases and results in a first intermediary merged list, and wherein the plurality of phases includes: a subsequent plurality of phases each merging a prior intermediary merged list resulting from a prior phase of the plurality of phases with a next input sorted list of the plurality of input sorted lists to generate a next intermediary merged list, and a final merged sorted list when there or no further input sorted lists after the next input sorted list in the plurality of input sorted lists; and alternating a location in memory for the next intermediary merged list, for each of the subsequent plurality of phases, between the first array and the second array from one phase of the plurality of phases to the next phase of the subsequent plurality of phases. 2. The computing system in accordance with claim 1 , wherein the act of accessing the plurality of input sorted lists further comprises: an act of accessing a plurality of elements; and an act of using the plurality of elements to formulate the plurality of input sorted lists. 3. The computing system in accordance with claim 2 , wherein the act of using the plurality of elements to formulate the plurality of input sorted lists further comprises the following, for each of the plurality of elements: an act of determining whether or not there are any input sorted lists that have a tail member that has a higher priority in a sorting priority than the corresponding element, if there are not any input sorted lists that have a tail member than has a higher priority in the sorting priority than the corresponding element, an act of creating a new input sorted list and an act of adding the corresponding element as a head element of the new input sorted list, the corresponding element also being a tail element of the new input sorted list since the corresponding element is the only element of the new input sorted list; and if there are one or more input sorted lists that have a tail member that has a higher priority in the sorting priority than the corresponding element, an act of adding the corresponding element to one of the one or more input sorted lists such that the corresponding element becomes a new tail member of the input sorted list to which the corresponding element is added. 4. The computing system in accordance with claim 3 , wherein the method further includes: an act of selecting whichever of the multiple sorted lists have a tail member that has a lowest priority in the sorting priority as the input sorted list to which to add the corresponding element as a new tail member when there are multiple input sorted lists that have a tail member that has a higher priority in the sorting priority than the corresponding element. 5. The computing system in accordance with claim 4 , wherein the input sorted lists are ordered in sequence of lower to higher priority of each tail member in the sorting priority. 6. The computing system in accordance with claim 5 , wherein for a given element of the plurality of elements, the act of determining whether or not there are any input sorted lists that have a tail member that has a higher priority in a sorting priority than the corresponding element, and the act of selecting whichever of the multiple input sorted lists has a tail member that has a lowest priority in the sorting priority as the sorted list to which to add the corresponding element as a new tail member, comprises the following: an act of marking a last input sorted list to which a prior element of the plurality of elements was added; an act of beginning a comparison of the given element with the tail member of the marked sorted list. 7. One or more storage devices having stored computer-executable instructions that are executable by one or more hardware processors for causing a computing system to implement a method of formulating a merged sorted list, wherein the method includes: an act of accessing a plurality of input sorted lists including three or more input sorted lists; an act of contiguously populating a first array with the plurality of input sorted lists; and an act of using the first array and a second array to merge the plurality of input sorted lists into a merged sorted list, wherein the merging occurs by merging the first and second sorted lists in a plurality of phases, wherein the merging of the first and second sorted lists occurs in a first phase of the plurality of phases and results in a first intermediary merged list, and wherein the plurality of phases includes: a subsequent plurality of phases each merging a prior intermediary merged list resulting from a prior phase of the plurality of phases with a next input sorted list of the plurality of input sorted lists to generate a next intermediary merged list, and a final merged sorted list when there or no further input sorted lists after the next input sorted list in the plurality of input sorted lists; and alternating a location in memory for the next intermediary merged list, for each of the subsequent plurality of phases, between the first array and the second array from one phase of the plurality of phases to the next phase of the subsequent plurality of phases. 8. The one or more storage devices in accordance with claim 7 , wherein the act of accessing the plurality of input sorted lists further comprises: an act of accessing a plurality of elements; and an act of using the plurality of elements to formulate the plurality of input sorted lists. 9. The one or more storage devices in accordance with claim 8 , wherein the act of using the plurality of elements to formulate the plurality of input sorted lists further comprises the following, for each of the plurality of elements: an act of determining whether or not there are any input sorted lists that have a tail member that has a higher priority in a sorting priority than the corresponding element, if there are not any input sorted lists that have a tail member than has a higher priority in the sorting priority than the corresponding element, an act of creating a new input sorted list and an act of adding the corresponding element as a head element of the new input sorted list, the corresponding element also being a tail element of the new input sorted list since the corresponding element is the only element of the new input sorted list; and if there are one or more input sorted lists that have a tail member that has a higher priority in the sorting priority than the corresponding element, an act of adding the corresponding element to one of the one or more input sorted lists such that the corresponding element becomes a new tail member of the input sorted list to which the corresponding element is added. 10. The one or more storage devices in accordance with claim 9 , wherein the method further includes: an act of selecting whichever of the multiple sorted lists have a tail member that has a lowest

Assignees

Inventors

Classifications

  • Database tuning (G06F16/2282 takes precedence; database performance monitoring G06F11/3409) · CPC title

  • Vectors, bitmaps or matrices · CPC title

  • Query processing · CPC title

  • External sorting · CPC title

  • G06F7/32Primary

    Merging, i.e. combining data contained in ordered sequence on at least two record carriers to produce a single carrier or set of carriers having all the original data in the ordered sequence {merging methods in general}(G06F7/36 takes precedence) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10552397B2 cover?
The formulation of a merged sorted list from multiple input sorted lists in multiple phases using an array pair. Initially, the first array is contiguously populated with the input sorted lists. In the first phase, the first and second input sorted lists are merged into a first intermediary merged list within the second array. Each subsequent phase merges a prior intermediary merged list result…
Who is the assignee on this patent?
Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F16/2237. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 04 2020 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).