Multi-interval Quicksort for Complex Objects

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing sorting algorithms are inefficient when dealing with complex data objects, requiring excessive time for copying and swapping due to their large size, which burdens the sorting process.

Innovation Solution

A 'divide and conquer' sorting method that operates on references to complex objects rather than the objects themselves, using at least two pivot elements at each level of the recursive algorithm to reduce the number of operations and increase efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If sorting algorithms copy and swap complex data objects during the sorting process, then the sorting can be performed correctly, but the time required for copying and swapping increases significantly due to the large size of the objects

Engineering Contradiction:
Improvesorting correctnessVSAvoidsorting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies the copying principle by creating and sorting an array of references (pointers) to the complex objects rather than copying the objects themselves. Each reference is a small data structure containing only the memory address of the object, allowing efficient sorting operations while maintaining correct sorting behavior. The references are sorted in place, and the sorted order is reflected in the original object array through the reference mappings.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent uses references as an intermediary between the sorting algorithm and the complex objects. Instead of directly manipulating the large objects, the algorithm operates on the small reference structures, which act as mediators. This intermediary layer enables efficient sorting operations while the actual objects remain in their original locations, reducing the time complexity from O(n*k) to O(n*log n) where k is the object size.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If traditional sorting algorithms are used on complex objects, then the sorting can be completed, but the number of operations required is excessive due to the need to copy and swap large data structures

Engineering Contradiction:
Improvesorting throughputVSAvoidoperational complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent creates a separate array of references that copies only the memory addresses of the complex objects, not the objects themselves. This reference array is then sorted using standard sorting algorithms, reducing the operational complexity from manipulating large objects to manipulating small pointer structures. The sorting throughput increases significantly because each swap operation now moves only a few bytes rather than kilobytes or megabytes of data.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent segments the sorting problem into two independent parts: (1) creating and sorting the reference array, and (2) using the sorted references to access objects in the desired order. This segmentation allows the sorting algorithm to operate independently on the lightweight reference structures without being burdened by the size and complexity of the actual objects, thereby improving productivity while reducing operational complexity.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS9129004B2Multi-interval quicksort algorithm for complex objects
Publication Date: 2015.09.08 SUN MICROSYSTEMS INC
  • US9129004B2 patent drawing
  • US9129004B2 patent drawing
  • US9129004B2 patent drawing

AI summary

Systems and methods (“utility”) for sorting a plurality of complex objects are provided herein. The utility may include a sorting algorithm that sorts references to the complex objects, rather than the complex objects themselves, such that the need to copy and swap complex objects in their locations in memory is reduced. Further, the sorting algorithm may utilize a recursive divide and conquer process, using multiple pivot elements at each sorting level. For example, the sorting algorithm is based on a modified Quicksort algorithm that uses multiple pivot elements at each level to sort an array of references that point to complex objects.