Bubble Sort Merge Sort - PowerPoint PPT Presentation

About This Presentation
Title:

Bubble Sort Merge Sort

Description:

Merge Sort Bubble Sort Sorting Sorting takes an unordered collection and makes it an ordered one. – PowerPoint PPT presentation

Number of Views:367
Avg rating:3.0/5.0
Slides: 154
Provided by: ccGatech9
Category:
Tags: animated | bubble | merge | sort

less

Transcript and Presenter's Notes

Title: Bubble Sort Merge Sort


1
Bubble SortMerge Sort
Lecture 16
2
Bubble Sort
3
Sorting
  • Sorting takes an unordered collection and makes
    it an ordered one.

1 2 3 4 5
6
101
12
5
35
42
77
1 2 3 4 5
6
4
"Bubbling Up" the Largest Element
  • Traverse a collection of elements
  • Move from the front to the end
  • Bubble the largest value to the end using
    pair-wise comparisons and swapping

1 2 3 4 5
6
12
101
5
35
42
77
5
"Bubbling Up" the Largest Element
  • Traverse a collection of elements
  • Move from the front to the end
  • Bubble the largest value to the end using
    pair-wise comparisons and swapping

1 2 3 4 5
6
Swap
12
101
5
35
42
77
6
"Bubbling Up" the Largest Element
  • Traverse a collection of elements
  • Move from the front to the end
  • Bubble the largest value to the end using
    pair-wise comparisons and swapping

1 2 3 4 5
6
Swap
12
101
5
35
77
42
7
"Bubbling Up" the Largest Element
  • Traverse a collection of elements
  • Move from the front to the end
  • Bubble the largest value to the end using
    pair-wise comparisons and swapping

1 2 3 4 5
6
Swap
12
101
5
77
35
42
8
"Bubbling Up" the Largest Element
  • Traverse a collection of elements
  • Move from the front to the end
  • Bubble the largest value to the end using
    pair-wise comparisons and swapping

1 2 3 4 5
6
77
101
5
12
35
42
No need to swap
9
"Bubbling Up" the Largest Element
  • Traverse a collection of elements
  • Move from the front to the end
  • Bubble the largest value to the end using
    pair-wise comparisons and swapping

1 2 3 4 5
6
Swap
77
101
5
12
35
42
10
"Bubbling Up" the Largest Element
  • Traverse a collection of elements
  • Move from the front to the end
  • Bubble the largest value to the end using
    pair-wise comparisons and swapping

1 2 3 4 5
6
101
77
5
12
35
42
Largest value correctly placed
11
The Bubble Up Algorithm
  • index lt- 1
  • last_compare_at lt- n 1
  • loop
  • exitif(index gt last_compare_at)
  • if(Aindex gt Aindex 1) then
  • Swap(Aindex, Aindex 1)
  • endif
  • index lt- index 1
  • endloop

12
No, Swap isnt built in.
LB
  • Procedure Swap(a, b isoftype in/out Num)
  • t isoftype Num
  • t lt- a
  • a lt- b
  • b lt- t
  • endprocedure // Swap

13
Items of Interest
  • Notice that only the largest value is correctly
    placed
  • All other values are still out of order
  • So we need to repeat this process

1 2 3 4 5
6
101
77
5
12
35
42
Largest value correctly placed
14
Repeat Bubble Up How Many Times?
  • If we have N elements
  • And if each time we bubble an element, we place
    it in its correct location
  • Then we repeat the bubble up process N 1
    times.
  • This guarantees well correctly place all N
    elements.

15
Bubbling All the Elements
16
Reducing the Number of Comparisons
17
Reducing the Number of Comparisons
  • On the Nth bubble up, we only need to do MAX-N
    comparisons.
  • For example
  • This is the 4th bubble up
  • MAX is 6
  • Thus we have 2 comparisons to do

18
Putting It All Together
19
  • N is // Size of Array
  • Arr_Type definesa Array1..N of Num
  • Procedure Swap(n1, n2 isoftype in/out Num)
  • temp isoftype Num
  • temp lt- n1
  • n1 lt- n2
  • n2 lt- temp
  • endprocedure // Swap

20
  • procedure Bubblesort(A isoftype in/out Arr_Type)
  • to_do, index isoftype Num
  • to_do lt- N 1
  • loop
  • exitif(to_do 0)
  • index lt- 1
  • loop
  • exitif(index gt to_do)
  • if(Aindex gt Aindex 1) then
  • Swap(Aindex, Aindex 1)
  • endif
  • index lt- index 1
  • endloop
  • to_do lt- to_do - 1
  • endloop
  • endprocedure // Bubblesort

Outer loop
Inner loop
21
Already Sorted Collections?
  • What if the collection was already sorted?
  • What if only a few elements were out of place and
    after a couple of bubble ups, the collection
    was sorted?
  • We want to be able to detect this and stop
    early!

22
Using a Boolean Flag
  • We can use a boolean variable to determine if any
    swapping occurred during the bubble up.
  • If no swapping occurred, then we know that the
    collection is already sorted!
  • This boolean flag needs to be reset after each
    bubble up.

23
  • did_swap isoftype Boolean
  • did_swap lt- true
  • loop
  • exitif ((to_do 0) OR NOT(did_swap))
  • index lt- 1
  • did_swap lt- false
  • loop
  • exitif(index gt to_do)
  • if(Aindex gt Aindex 1) then
  • Swap(Aindex, Aindex 1)
  • did_swap lt- true
  • endif
  • index lt- index 1
  • endloop
  • to_do lt- to_do - 1
  • endloop

24
An Animated Example
N
8
true
did_swap
to_do
7
index

67
45
23
14
6
33
98
42
1 2 3 4 5 6 7 8
25
An Animated Example
N
8
false
did_swap
to_do
7
index
1
67
45
23
14
6
33
98
42
1 2 3 4 5 6 7 8
26
An Animated Example
N
8
false
did_swap
to_do
7
index
1
Swap
67
45
23
14
6
33
98
42
1 2 3 4 5 6 7 8
27
An Animated Example
N
8
true
did_swap
to_do
7
index
1
Swap
67
45
98
14
6
33
23
42
1 2 3 4 5 6 7 8
28
An Animated Example
N
8
true
did_swap
to_do
7
index
2
67
45
98
14
6
33
23
42
1 2 3 4 5 6 7 8
29
An Animated Example
N
8
true
did_swap
to_do
7
index
2
Swap
67
45
98
14
6
33
23
42
1 2 3 4 5 6 7 8
30
An Animated Example
N
8
true
did_swap
to_do
7
index
2
Swap
67
98
45
14
6
33
23
42
1 2 3 4 5 6 7 8
31
An Animated Example
N
8
true
did_swap
to_do
7
index
3
67
98
45
14
6
33
23
42
1 2 3 4 5 6 7 8
32
An Animated Example
N
8
true
did_swap
to_do
7
index
3
Swap
67
98
45
14
6
33
23
42
1 2 3 4 5 6 7 8
33
An Animated Example
N
8
true
did_swap
to_do
7
index
3
Swap
67
14
45
98
6
33
23
42
1 2 3 4 5 6 7 8
34
An Animated Example
N
8
true
did_swap
to_do
7
index
4
67
14
45
98
6
33
23
42
1 2 3 4 5 6 7 8
35
An Animated Example
N
8
true
did_swap
to_do
7
index
4
Swap
67
14
45
98
6
33
23
42
1 2 3 4 5 6 7 8
36
An Animated Example
N
8
true
did_swap
to_do
7
index
4
Swap
67
14
45
6
98
33
23
42
1 2 3 4 5 6 7 8
37
An Animated Example
N
8
true
did_swap
to_do
7
index
5
67
14
45
6
98
33
23
42
1 2 3 4 5 6 7 8
38
An Animated Example
N
8
true
did_swap
to_do
7
index
5
Swap
67
14
45
6
98
33
23
42
1 2 3 4 5 6 7 8
39
An Animated Example
N
8
true
did_swap
to_do
7
index
5
Swap
98
14
45
6
67
33
23
42
1 2 3 4 5 6 7 8
40
An Animated Example
N
8
true
did_swap
to_do
7
index
6
98
14
45
6
67
33
23
42
1 2 3 4 5 6 7 8
41
An Animated Example
N
8
true
did_swap
to_do
7
index
6
Swap
98
14
45
6
67
33
23
42
1 2 3 4 5 6 7 8
42
An Animated Example
N
8
true
did_swap
to_do
7
index
6
Swap
33
14
45
6
67
98
23
42
1 2 3 4 5 6 7 8
43
An Animated Example
N
8
true
did_swap
to_do
7
index
7
33
14
45
6
67
98
23
42
1 2 3 4 5 6 7 8
44
An Animated Example
N
8
true
did_swap
to_do
7
index
7
Swap
33
14
45
6
67
98
23
42
1 2 3 4 5 6 7 8
45
An Animated Example
N
8
true
did_swap
to_do
7
index
7
Swap
33
14
45
6
67
42
23
98
1 2 3 4 5 6 7 8
46
After First Pass of Outer Loop
N
8
true
did_swap
to_do
7
Finished first Bubble Up
index
8
33
14
45
6
67
42
23
98
1 2 3 4 5 6 7 8
47
The Second Bubble Up
N
8
false
did_swap
to_do
6
index
1
33
14
45
6
67
42
23
98
1 2 3 4 5 6 7 8
48
The Second Bubble Up
N
8
false
did_swap
to_do
6
index
1
No Swap
33
14
45
6
67
42
23
98
1 2 3 4 5 6 7 8
49
The Second Bubble Up
N
8
false
did_swap
to_do
6
index
2
33
14
45
6
67
42
23
98
1 2 3 4 5 6 7 8
50
The Second Bubble Up
N
8
false
did_swap
to_do
6
index
2
Swap
33
14
45
6
67
42
23
98
1 2 3 4 5 6 7 8
51
The Second Bubble Up
N
8
true
did_swap
to_do
6
index
2
Swap
33
45
14
6
67
42
23
98
1 2 3 4 5 6 7 8
52
The Second Bubble Up
N
8
true
did_swap
to_do
6
index
3
33
45
14
6
67
42
23
98
1 2 3 4 5 6 7 8
53
The Second Bubble Up
N
8
true
did_swap
to_do
6
index
3
Swap
33
45
14
6
67
42
23
98
1 2 3 4 5 6 7 8
54
The Second Bubble Up
N
8
true
did_swap
to_do
6
index
3
Swap
33
6
14
45
67
42
23
98
1 2 3 4 5 6 7 8
55
The Second Bubble Up
N
8
true
did_swap
to_do
6
index
4
33
6
14
45
67
42
23
98
1 2 3 4 5 6 7 8
56
The Second Bubble Up
N
8
true
did_swap
to_do
6
index
4
No Swap
33
6
14
45
67
42
23
98
1 2 3 4 5 6 7 8
57
The Second Bubble Up
N
8
true
did_swap
to_do
6
index
5
33
6
14
45
67
42
23
98
1 2 3 4 5 6 7 8
58
The Second Bubble Up
N
8
true
did_swap
to_do
6
index
5
Swap
33
6
14
45
67
42
23
98
1 2 3 4 5 6 7 8
59
The Second Bubble Up
N
8
true
did_swap
to_do
6
index
5
Swap
67
6
14
45
33
42
23
98
1 2 3 4 5 6 7 8
60
The Second Bubble Up
N
8
true
did_swap
to_do
6
index
6
67
6
14
45
33
42
23
98
1 2 3 4 5 6 7 8
61
The Second Bubble Up
N
8
true
did_swap
to_do
6
index
6
Swap
67
6
14
45
33
42
23
98
1 2 3 4 5 6 7 8
62
The Second Bubble Up
N
8
true
did_swap
to_do
6
index
6
Swap
42
6
14
45
33
67
23
98
1 2 3 4 5 6 7 8
63
After Second Pass of Outer Loop
N
8
true
did_swap
to_do
6
Finished second Bubble Up
index
7
42
6
14
45
33
67
23
98
1 2 3 4 5 6 7 8
64
The Third Bubble Up
N
8
false
did_swap
to_do
5
index
1
42
6
14
45
33
67
23
98
1 2 3 4 5 6 7 8
65
The Third Bubble Up
N
8
false
did_swap
to_do
5
index
1
Swap
42
6
14
45
33
67
23
98
1 2 3 4 5 6 7 8
66
The Third Bubble Up
N
8
true
did_swap
to_do
5
index
1
Swap
42
6
23
45
33
67
14
98
1 2 3 4 5 6 7 8
67
The Third Bubble Up
N
8
true
did_swap
to_do
5
index
2
42
6
23
45
33
67
14
98
1 2 3 4 5 6 7 8
68
The Third Bubble Up
N
8
true
did_swap
to_do
5
index
2
Swap
42
6
23
45
33
67
14
98
1 2 3 4 5 6 7 8
69
The Third Bubble Up
N
8
true
did_swap
to_do
5
index
2
Swap
42
23
6
45
33
67
14
98
1 2 3 4 5 6 7 8
70
The Third Bubble Up
N
8
true
did_swap
to_do
5
index
3
42
23
6
45
33
67
14
98
1 2 3 4 5 6 7 8
71
The Third Bubble Up
N
8
true
did_swap
to_do
5
index
3
No Swap
42
23
6
45
33
67
14
98
1 2 3 4 5 6 7 8
72
The Third Bubble Up
N
8
true
did_swap
to_do
5
index
4
42
23
6
45
33
67
14
98
1 2 3 4 5 6 7 8
73
The Third Bubble Up
N
8
true
did_swap
to_do
5
index
4
Swap
42
23
6
45
33
67
14
98
1 2 3 4 5 6 7 8
74
The Third Bubble Up
N
8
true
did_swap
to_do
5
index
4
Swap
42
23
6
33
45
67
14
98
1 2 3 4 5 6 7 8
75
The Third Bubble Up
N
8
true
did_swap
to_do
5
index
5
42
23
6
33
45
67
14
98
1 2 3 4 5 6 7 8
76
The Third Bubble Up
N
8
true
did_swap
to_do
5
index
5
Swap
42
23
6
33
45
67
14
98
1 2 3 4 5 6 7 8
77
The Third Bubble Up
N
8
true
did_swap
to_do
5
index
5
Swap
45
23
6
33
42
67
14
98
1 2 3 4 5 6 7 8
78
After Third Pass of Outer Loop
N
8
true
did_swap
to_do
5
Finished third Bubble Up
index
6
45
23
6
33
42
67
14
98
1 2 3 4 5 6 7 8
79
The Fourth Bubble Up
N
8
false
did_swap
to_do
4
index
1
45
23
6
33
42
67
14
98
1 2 3 4 5 6 7 8
80
The Fourth Bubble Up
N
8
false
did_swap
to_do
4
index
1
Swap
45
23
6
33
42
67
14
98
1 2 3 4 5 6 7 8
81
The Fourth Bubble Up
N
8
true
did_swap
to_do
4
index
1
Swap
45
23
14
33
42
67
6
98
1 2 3 4 5 6 7 8
82
The Fourth Bubble Up
N
8
true
did_swap
to_do
4
index
2
45
23
14
33
42
67
6
98
1 2 3 4 5 6 7 8
83
The Fourth Bubble Up
N
8
true
did_swap
to_do
4
index
2
No Swap
45
23
14
33
42
67
6
98
1 2 3 4 5 6 7 8
84
The Fourth Bubble Up
N
8
true
did_swap
to_do
4
index
3
45
23
14
33
42
67
6
98
1 2 3 4 5 6 7 8
85
The Fourth Bubble Up
N
8
true
did_swap
to_do
4
index
3
No Swap
45
23
14
33
42
67
6
98
1 2 3 4 5 6 7 8
86
The Fourth Bubble Up
N
8
true
did_swap
to_do
4
index
4
45
23
14
33
42
67
6
98
1 2 3 4 5 6 7 8
87
The Fourth Bubble Up
N
8
true
did_swap
to_do
4
index
4
No Swap
45
23
14
33
42
67
6
98
1 2 3 4 5 6 7 8
88
After Fourth Pass of Outer Loop
N
8
true
did_swap
to_do
4
Finished fourth Bubble Up
index
5
45
23
14
33
42
67
6
98
1 2 3 4 5 6 7 8
89
The Fifth Bubble Up
N
8
false
did_swap
to_do
3
index
1
45
23
14
33
42
67
6
98
1 2 3 4 5 6 7 8
90
The Fifth Bubble Up
N
8
false
did_swap
to_do
3
index
1
No Swap
45
23
14
33
42
67
6
98
1 2 3 4 5 6 7 8
91
The Fifth Bubble Up
N
8
false
did_swap
to_do
3
index
2
45
23
14
33
42
67
6
98
1 2 3 4 5 6 7 8
92
The Fifth Bubble Up
N
8
false
did_swap
to_do
3
index
2
No Swap
45
23
14
33
42
67
6
98
1 2 3 4 5 6 7 8
93
The Fifth Bubble Up
N
8
false
did_swap
to_do
3
index
3
45
23
14
33
42
67
6
98
1 2 3 4 5 6 7 8
94
The Fifth Bubble Up
N
8
false
did_swap
to_do
3
index
3
No Swap
45
23
14
33
42
67
6
98
1 2 3 4 5 6 7 8
95
After Fifth Pass of Outer Loop
N
8
false
did_swap
to_do
3
Finished fifth Bubble Up
index
4
45
23
14
33
42
67
6
98
1 2 3 4 5 6 7 8
96
Finished Early
N
8
false
did_swap
to_do
3
We didnt do any swapping,so all of the other
elementsmust be correctly placed. We can skip
the last twopasses of the outer loop.
index
4
45
23
14
33
42
67
6
98
1 2 3 4 5 6 7 8
97
Summary
  • Bubble Up algorithm will move largest value to
    its correct location (to the right)
  • Repeat Bubble Up until all elements are
    correctly placed
  • Maximum of N-1 times
  • Can finish early if no swapping occurs
  • We reduce the number of elements we compare each
    time one is correctly placed

98
Truth in CS Act
LB
  • NOBODY EVER USES BUBBLE SORT
  • NOBODY
  • NOT EVER
  • BECAUSE IT IS EXTREMELY INEFFICIENT

99
Questions?
100
Mergesort
101
Sorting
  • Sorting takes an unordered collection and makes
    it an ordered one.

1 2 3 4 5
6
101
12
5
35
42
77
1 2 3 4 5
6
102
Divide and Conquer
  • Divide and Conquer cuts the problem in half each
    time, but uses the result of both halves
  • cut the problem in half until the problem is
    trivial
  • solve for both halves
  • combine the solutions

103
Mergesort
  • A divide-and-conquer algorithm
  • Divide the unsorted array into 2 halves until the
    sub-arrays only contain one element
  • Merge the sub-problem solutions together
  • Compare the sub-arrays first elements
  • Remove the smallest element and put it into the
    result array
  • Continue the process until all elements have been
    put into the result array

104
How to Remember Merge Sort?
105
How To Remember Merge Sort?
(q,t)
Just as Mariah recursively moves her hands into
smaller circles, so too does merge sort
recursively split an array into smaller segments.

We need two such recursions, one for each half of
the split array.
106
Algorithm
  • Mergesort(Passed an array)
  • if array size gt 1
  • Divide array in half
  • Call Mergesort on first half.
  • Call Mergesort on second half.
  • Merge two halves.
  • Merge(Passed two arrays)
  • Compare leading element in each array
  • Select lower and place in new array.
  • (If one input array is empty then place
  • remainder of other array in output array)

107
More TRUTH in CS
LB
  • We dont really pass in two arrays!
  • We pass in one array with indicator variables
    which tell us where one set of data starts and
    finishes and where the other set of data starts
    and finishes.
  • Honest.

108
Algorithm
LB
  • Mergesort(Passed an array)
  • if array size gt 1
  • Divide array in half
  • Call Mergesort on first half.
  • Call Mergesort on second half.
  • Merge two halves.
  • Merge(Passed two arrays)
  • Compare leading element in each array
  • Select lower and place in new array.
  • (If one input array is empty then place
  • remainder of other array in output array)

109
67
45
23
14
6
33
98
42
110
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
111
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
112
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
23
98
113
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
23
98
Merge
114
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
23
98
23
Merge
115
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
23
98
23
98
Merge
116
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
23
98
45
14
23
98
117
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
23
98
45
14
23
98
Merge
118
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
23
98
45
14
14
23
98
Merge
119
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
23
98
45
14
45
23
98
14
Merge
120
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
23
98
45
14
98
45
14
23
Merge
121
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
23
98
45
14
98
14
23
45
14
Merge
122
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
23
98
45
14
23
14
98
45
14
23
Merge
123
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
23
98
45
14
23
98
45
14
14
23
45
Merge
124
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
23
98
45
14
23
98
45
14
14
23
45
98
Merge
125
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
23
98
45
14
14
23
45
98
126
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
23
98
45
14
14
23
45
98
127
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
23
98
45
14
Merge
14
23
45
98
128
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
6
23
98
45
14
Merge
14
23
45
98
129
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
67
23
98
45
14
6
Merge
14
23
45
98
130
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
23
98
45
14
67
6
14
23
45
98
131
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
23
98
45
14
67
6
Merge
14
23
45
98
132
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
33
23
98
45
14
67
6
Merge
14
23
45
98
133
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
42
23
98
45
14
67
6
33
Merge
14
23
45
98
134
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
23
98
45
14
67
6
42
33
14
23
45
98
Merge
135
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
23
98
45
14
6
42
33
67
6
14
23
45
98
Merge
136
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
23
98
45
14
6
33
67
42
6
33
14
23
45
98
Merge
137
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
23
98
45
14
6
42
33
67
6
33
42
14
23
45
98
Merge
138
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
23
98
45
14
67
6
42
33
6
33
42
67
14
23
45
98
Merge
139
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
23
98
45
14
67
6
42
33
33
42
67
6
23
45
98
14
Merge
140
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
23
98
45
14
67
6
42
33
6
42
67
33
23
45
98
14
6
Merge
141
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
23
98
45
14
67
6
42
33
6
42
67
33
14
45
98
23
6
14
Merge
142
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
23
98
45
14
67
6
42
33
6
42
67
33
14
23
98
45
6
14
23
Merge
143
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
23
98
45
14
67
6
42
33
6
33
67
42
14
23
98
45
6
14
23
33
Merge
144
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
23
98
45
14
67
6
42
33
6
33
42
67
14
23
98
45
6
14
23
33
42
Merge
145
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
23
98
45
14
67
6
42
33
6
33
42
67
14
23
45
98
6
14
23
33
42
45
Merge
146
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
23
98
45
14
67
6
42
33
6
33
42
67
14
23
45
98
6
14
23
33
42
45
67
Merge
147
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
23
98
45
14
67
6
42
33
6
33
42
67
14
23
45
98
6
14
23
33
42
45
67
98
Merge
148
67
45
23
14
6
33
98
42
67
45
23
14
6
33
98
42
45
23
14
98
67
6
33
42
23
98
45
14
67
6
33
42
23
98
45
14
67
6
42
33
6
33
42
67
14
23
45
98
6
14
23
33
42
45
67
98
149
67
45
23
14
6
33
98
42
6
14
23
33
42
45
67
98
150
Summary
  • Divide the unsorted collection into two
  • Until the sub-arrays only contain one element
  • Then merge the sub-problem solutions together

151
Questions?
152
Review?
153
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com