O(1) Stream Sorting via Bitmap and Linked List

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data sorting mechanisms in VLSI technology face inefficiencies in reordering stream elements, particularly in real-time applications where high computational efficiency is required, as existing methods like naive search and binary tree searches are not scalable for large numbers of elements.

Innovation Solution

A network-connected device and method utilizing a linked list and a mapping dataset with a bitmap implementation, where each stream element is marked with a sequence number, allowing for efficient sorting by accessing dataset addresses equivalent to the sequence number, and inserting elements at ordered or derived positions based on their sequence, enabling high-performance sorting close to O(1) even for large numbers of elements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If naive search or binary tree search is used for sorting stream elements, then the sorting can be implemented with simple data structures, but the computational efficiency deteriorates and becomes non-scalable for large numbers of elements

Engineering Contradiction:
Improvecomputational efficiencyVSAvoiddata structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the sorting problem into two independent parts: a bitmap data structure that tracks presence of sequence numbers (O(1) operations) and a linked list that stores actual stream elements. This segmentation allows each component to operate independently with optimal performance, avoiding the complexity of traditional tree structures while maintaining O(1) insertion efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a bitmap as an intermediary data structure that mediates between the incoming stream elements and the linked list. The bitmap acts as a lookup table that provides O(1) access to determine whether elements exist and where they should be inserted, eliminating the need for complex search operations while maintaining sorted order.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of time

If traditional sorting algorithms are used, then the implementation is straightforward, but the insertion time increases with the number of elements in the list

Engineering Contradiction:
Improveinsertion timeVSAvoidsorting performance
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The patent performs preliminary actions by maintaining a bitmap that is pre-populated with the presence information of all sequence numbers in the sorted list. This allows the system to determine insertion positions in O(1) time without performing sequential searches, as the bitmap already contains all necessary information about element positions before insertion occurs.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces the mechanical search process (iterating through elements to find insertion position) with a direct memory access mechanism (bitmap lookup). Instead of physically traversing the data structure to find where to insert an element, the system uses the bitmap's direct addressing capability to instantly determine the insertion position, achieving O(1) insertion time regardless of list size.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentEP4049421B1Systems and methods for sorting data elements with approximation to o(1)
Publication Date: 2023.11.29 HUAWEI TECH CO LTD
  • EP4049421B1 patent drawingFigure 1A~1B
  • EP4049421B1 patent drawingFigure 2
  • EP4049421B1 patent drawingFigure 3

AI summary

There is provided a network connected device, comprising: a storage storing a linked list holding stream elements sorted by their corresponding sequence number and a mapping dataset comprising dataset addresses each associated with a value and a corresponding pointer pointing to a position in the linked list that holds one of the stream elements, and a processor that adds stream elements each marked with a sequence number to the linked-list by: accessing a first of the dataset addresses which is equivalent to the respective sequence number, updating a value addressed by the first dataset address when this value is not already updated, when a copy of a stream element having the respective sequence number is missing from the linked-list adding a copy of the respective stream element to an ordered position in the linked-list, and when the copy is in the linked-list adding a copy to a derived position.