0% found this document useful (0 votes)
84 views5 pages

8 - Cosequential Processing

This document discusses sorting large files that are too big to fit in memory. It describes cosequential processing and multiway merging to sort files in batches. K-way merging is used to merge K sorted input lists into a single sorted output list. When the number of lists is large, a priority queue implemented as a heap can be used for efficiency.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
84 views5 pages

8 - Cosequential Processing

This document discusses sorting large files that are too big to fit in memory. It describes cosequential processing and multiway merging to sort files in batches. K-way merging is used to merge K sorted input lists into a single sorted output list. When the number of lists is large, a priority queue implemented as a heap can be used for efficiency.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

File Structures

Dr. Qasem Al-Radaideh


[email protected]

Yarmouk University
Department of Computer Information Systems
Note: Most of these slides have been prepared by Dr. Binnur Kurt from Istanbul
Technical University, Computer Engineering Department and adopted for our course
with his permission.

CIS 256 ( File Structures)

COSEQUENTIAL PROCESSING
(SORTING LARGE FILES)

Content
Content

Sorting Large Files 8

Cosequential Processing and Multiway Merge


Sorting Large Files (External Sorting)

File Organization

Sorting Large Files 8

Cosequential
Cosequential Processing
Processing &
& Multiway
Multiway Merging
Merging
K-way merge algorithm: merge K sorted input lists to
create a single sorted output list
Adapting 2-way merge algorithm
Instead of naming as List1 and List2 keep an array of
lists: List[1], List[2],..., List[K]
Instead of naming as item(1) and item(2) keep an array
of items: item[1], item[2],..., item[K]

File Organization

Sorting Large Files 8

2-way
2-way Merging
Merging Eliminating
Eliminating Repetitions
Repetitions
Synchronization
Let item[1] be the current item from list[1] and item[2] be
the current item from list[2].
Rules:
If item[1] < item[2], get the next item from list[1].
If item[1] > item[2], get the next item from list[2].
If item[1] = item[2], output the item and get the next
items from the two lists.

File Organization

Sorting Large Files 8

K-way
K-way Merging
Merging Algorithm
Algorithm
An array of K index values corresponding to the current
element in each of the K lists, respectively.
Main loop of the K-Way Merge algorithm:
1. minItem=index
of minimum item in
minItem
item[1],item[2],...,item[K]
2. output item[minItem]
minItem to output list
3. for i=1 to K do
4.
if item[i]=item[minItem]
minItem then
5.
get next item from List[i]
If there are no repeated items among different lists, lines
(3)-(5) can be simplified to
get next item from List[minItem]
minItem
File Organization

Sorting Large Files 8

Implementation
Implementation ## 11
The K-Way Merging Algorithm just described works well
if K<8:
Line(1) does a sequential search on item[1], item[2], ...,
item[K]
Running time: O(K)
Line(5) just replaces item[i] with newly read item
Running time: O(1)

File Organization

Sorting Large Files 8

Implementation
Implementation ## 22
When the number of lists is large, store current items
item[1], item[2], ..., item[K] into priority queue (heap).
Line(1) does a min operation on the heap.
Running time: O(1)
Line(5) performs a extract-min operation on the heap:
Running time: O(log2K)
and an insert on the heap
Running time: O(log2K)

File Organization

Sorting Large Files 8

80
80 Internal
Internal Sorts
Sorts

File Organization

You might also like