Maximum number of comparisons required to merge two sorted files

Click For Summary

Discussion Overview

The discussion revolves around determining the maximum number of comparisons required to merge two sorted files of lengths 'm' and 'n'. Participants explore various scenarios and reasoning related to this problem, focusing on theoretical aspects and potential worst-case scenarios.

Discussion Character

  • Exploratory
  • Technical explanation
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • Some participants propose that the maximum number of comparisons required is m+n-1, providing reasoning based on specific examples.
  • One participant illustrates a step-by-step merging process with two lists of sizes 3 and 2, concluding that 4 comparisons are needed in that specific case.
  • Another participant suggests a scenario where all but the last element of one list is smaller than the first element of the other list, leading to m-1 comparisons, followed by n comparisons for the last element, raising questions about proving that no pattern exists that would require more comparisons.
  • Several participants express the challenge of proving the worst-case number of comparisons without examining every possible scenario.
  • A later reply emphasizes that a logical explanation could serve as a better proof, noting that in the worst-case scenario, m+n-1 comparisons would be performed before the last element is moved without further comparisons.

Areas of Agreement / Disagreement

Participants generally agree on the maximum number of comparisons being m+n-1, but there are differing views on how to prove this and whether specific scenarios might lead to different outcomes. The discussion remains unresolved regarding the best approach to establish this maximum.

Contextual Notes

Participants highlight the complexity of proving the worst-case scenario, indicating that assumptions about element distributions significantly impact the number of comparisons. The discussion does not resolve the mathematical steps involved in proving the maximum comparisons.

22990atinesh
Messages
143
Reaction score
1

Homework Statement


Maximum no. of comparisons required to merge two sorted files of length 'm' and 'n' is..

Homework Equations

The Attempt at a Solution


I think m+n-1
 
Physics news on Phys.org
22990atinesh said:
I think m+n-1
Please also provide the reasoning behind your attempt.
 
@Orodruin Please see this question
Capture2.jpg


Suppose we have two list LIST-1 & LIST-2 of sorted integers of size 3, 2 respectively (say)

1. First we compare ##1^{st}## element of the both list and suppose we get minimum value from LIST-1, So we store it in the new array. Now we are having two lists of size 2, 2 (1 Comparison)
2. Now we compare ##2^{nd}## element of LIST-1 with ##1^{st}## element of LIST-2 this time element from LIST-2 becomes minimum, So we store it . Now we are having two list of size 2, 1 (1 Comparison)
3. Now we compare ##2^{nd}## element of LIST-1 with ##2^{nd}## element of LIST-2 this time element from LIST-1 becomes minimum, So we store it . Now we are having two list of size 1, 1 (1 Comparison)
4. Now we compare ##3^{rd}## element of LIST-1 with ##2^{nd}## element of LIST-2 this time element from LIST-2 becomes minimum. so we store it . Now we are having two list of size 1, 0 (1 Comparison)
5. Now we store last element left from LIST-1 to the array. Hence 3+2-1 = 4 comparisons
 
An alternative, list-m and list-n. Assume all but the last element of list-m is smaller than the first element of list-n, that's m-1 comparisons (not including the compare with last element of list-m yet). Assume last element of list-m is greater than all of the elements in list-n, that's n comparisons, and the last element of list-m is copied to the output list, 0 comparisons. The issue is proving there isn't a pattern that produces more compares.
 
rcgldr said:
An alternative, list-m and list-n. Assume all but the last element of list-m is smaller than the first element of list-n, that's m-1 comparisons (not including the compare with last element of list-m yet). Assume last element of list-m is greater than all of the elements in list-n, that's n comparisons, and the last element of list-m is copied to the output list, 0 comparisons. The issue is proving there isn't a pattern that produces more compares.
What I'm missing here
22990atinesh said:
@Orodruin Please see this question
Suppose we have two list LIST-1 & LIST-2 of sorted integers of size 3, 2 respectively (say)

1. First we compare ##1^{st}## element of the both list and suppose we get minimum value from LIST-1, So we store it in the new array. Now we are having two lists of size 2, 2 (1 Comparison)
2. Now we compare ##2^{nd}## element of LIST-1 with ##1^{st}## element of LIST-2 this time element from LIST-2 becomes minimum, So we store it . Now we are having two list of size 2, 1 (1 Comparison)
3. Now we compare ##2^{nd}## element of LIST-1 with ##2^{nd}## element of LIST-2 this time element from LIST-1 becomes minimum, So we store it . Now we are having two list of size 1, 1 (1 Comparison)
4. Now we compare ##3^{rd}## element of LIST-1 with ##2^{nd}## element of LIST-2 this time element from LIST-2 becomes minimum. so we store it . Now we are having two list of size 1, 0 (1 Comparison)
5. Now we store last element left from LIST-1 to the array. Hence 3+2-1 = 4 comparisons
 
You're not missing anything. The issue here is how do you prove the worst case number of comparasons without going through every possible scenario?
 
rcgldr said:
An alternative, list-m and list-n. Assume all but the last element of list-m is smaller than the first element of list-n, that's m-1 comparisons (not including the compare with last element of list-m yet). Assume last element of list-m is greater than all of the elements in list-n, that's n comparisons, and the last element of list-m is copied to the output list, 0 comparisons. The issue is proving there isn't a pattern that produces more compares.

rcgldr said:
You're not missing anything. The issue here is how do you prove the worst case number of comparasons without going through every possible scenario?

Your above approach also ends up with ##m+n-1## comparisons.
 
A logical explanation rather than specific cases would be a better "proof". After each compare, one element is moved from either list-m or list-n. In the worst case scenario, there is 1 element remaining in list-m and 1 element remaining in list-n, and m+n-2 compares have been performed. There is one more compare performed, which moves an element from either list-m or list-n, emptying that list, so the remaining element from the other list is moved without doing any compares, and the worst case scenario is m+n-1 compares.
 
  • Like
Likes   Reactions: 22990atinesh

Similar threads

Replies
2
Views
3K
  • · Replies 7 ·
Replies
7
Views
3K
  • · Replies 12 ·
Replies
12
Views
4K
  • · Replies 12 ·
Replies
12
Views
5K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 4 ·
Replies
4
Views
2K
  • · Replies 15 ·
Replies
15
Views
3K
  • · Replies 21 ·
Replies
21
Views
3K
  • · Replies 14 ·
Replies
14
Views
16K
  • · Replies 6 ·
Replies
6
Views
3K