Get the App
SLTechnology News&Howtos  ›  Database  › 

What is Polyphase Merge Sort?

Shulou Source: shulou.com Published: 2022-05-31 15:16:48 09月30日 Update

This article mainly explains "what is Polyphase Merge Sort". Interested friends may wish to have a look at it. The method introduced in this paper is simple, fast and practical. Now let the editor take you to learn "what is Polyphase Merge Sort?"

Polyphase Merge Sort is an External Sort algorithm. Given N Tapes, only one Tapes is needed as an Output device, and both read and write sequentially, which is friendly to external memory devices such as Disk/Tapes.

Merge Sort

The algorithm idea of merging sorting is to merge two run (sorted data abbreviations for short) to get the final result.

In the initial state, an element to be sorted can be regarded as a run, and then gradually merged into the final result with the n-th power of 2 as the cardinality. Obviously, the complexity (time) of the algorithm is O (nlogn).

Tape1: 2 3 5 6 9 11Tape2: 4 7 8 10Output: 2 3 4 5 6 7 8 9 10 11

Balanced N-way Merge Sort

The algorithm idea of balanced multiplex merge sorting is to use N input and output devices to read N inputs and generate N outputs.

Note: the following is an example of an implementation, where the part separated by the character "|" is called run.

Tape1: 2 35 6 30 | 1 11 200 Tape2: 4 7 8 10 | 15 20 35 201Tape3: EmptyTape4: Empty

Pass1

Tape1: EmptyTape2: EmptyTape3: 2 3 4 5 6 7 8 10 30 Tape4: 1 11 15 20 35 200 201

Pass2

Tape1: 1 2 3 4 5 6 7 8 10 11 15 20 30 35 200 201 Tape2: EmptyTape3: EmptyTape4: Empty

It is called balance because there are as many "devices" as input and output. N-way means that N devices can be processed at the same time.

In terms of space utilization, this algorithm requires N idle devices.

Polyphase Merge Sort

Polyphase Merge Sort is similar to N-way, but only needs one free device, which saves a lot of space.

Note: the following is an example of an implementation, where the part separated by the character "|" is called run.

Initial state

Tape1: 2 3 56 30 | 1 11 200 | 25 40 56 70

Tape2: 4 78 10 | 15 20 35 201 | 27 33 46 78 | 13 17 27 87 90

Tape3: Empty

Pass1

Tape1: Empty

Tape2: 13 17 27 87 90

Tape3: 2 3 4 56 78 10 30 | 1 11 15 20 35 200 201 | 25 27 33 40 46 56 70 78

Pass 2

Tape1: 2 3 4 5 6 7 8 10 13 17 27 30 87 90

Tape2: Empty

Tape3: 1 11 15 20 35 200 201 | 25 27 33 40 46 56 70 78

Pass3

Tape1: Empty

Tape2: 1 2 3 4 5 6 7 8 10 11 13 15 17 20 27 30 35 87 90 200 201

Tape3: 25 27 33 40 46 56 70 78

Pass4

Tape1: 1 2 3 4 56 78 10 11 13 15 17 20 25 27 30 33 35 40 46 56 70 78 87 90 200 201

Tape2: Empty

Tape3: Empty

At this point, I believe you have a deeper understanding of "what is Polyphase Merge Sort", might as well come to the actual operation of it! Here is the website, more related content can enter the relevant channels to inquire, follow us, continue to learn!

Tags: Device algorithm sort input output content character thought state free space result part learning complex practical deeper reason element interest Apple Docker Huawei Linux macOS MariaDB Microsoft MySQL NVidia OPPO Reno vpn Redmi MySQL NVidia Linux