Beruflich Dokumente
Kultur Dokumente
SORTING
ALGORITHMS
Udaibhan Singh
1401104
Vaibhav Maheshwari
1401105
Vaibhav Dwivedi
1401106
Vemparella Gopal Krishna
1401107
Searching Algorithms
Searching Algorithms
97
18
21
-86
64
-37
Searching Algorithms
Linear Search
Suppose that you want to determine whether 27 is in the list
First compare 27 with list[0]; that is, compare 27 with
35
Because list[0] 27, you then compare 27 with
list[1]
Because list[1] 27, you compare 27 with the next
element in the list
Because list[2] = 27, the search stops
This search is successful!
head
cur
22
34
head
cur
22
34
head
cur
22
34
target = 4
head
22
34
target = 4
head
22
34
target = 4
head
22
34
target = 4
head
22
34
target = 4
head
22
34
target = 4
head
22
34
target = 4
head
22
34
target = 4
head
22
34
target = 4
head
22
34
target = 4
head
22
34
target = 4
head
22
34
target = 4
head
22
34
target = 4
head
22
34
target = 4
head
22
34
target = 4
head
22
34
Average Number of
=
Comparisons
1 + 2 + 3 + ..+ N + N
N+1
Worst case and key is NOT found!
Binary Search
The Scenario
12 42 59 71 86 104 212
Binary Search
The Scenario
12 42 59 71 86 104 212
9 12 33 42
59 76 81 84 91 92 93 99
Look for 42
The Algorithm
look at middle element
if no match then
look left or right
9 12 33 42
59 76 81 84 91 92 93 99
Look for 42
The Algorithm
look at middle element
if no match then
look left or right
9 12 33 42
59 76 81 84 91 92 93 99
Look for 42
The Algorithm
look at middle element
if no match then
look left or right
9 12 33 42
59 76 81 84 91 92 93 99
Look for 42
Looking Left
12 42 59 71 86 104 212
Looking Right
12 42 59 71 86 104 212
12 42 59 71 86 104 212
M
Looking for 42
12 42 59 71 86 104 212
L
Looking for 42
12 42 59 71 86 104 212
F
M
L
42 found in 3 comparisons
12 42 59 71 86 104 212
M
Looking for 89
12 42 59 71 86 104 212
F
Looking for 89
12 42 59 71 86 104 212
F
M
Looking for 89
12 42 59 71 86 104 212
Target: 59
9 12 33 42
59 76 81 84 91 92 93 99
9 12 33 42
59 76 81 84 91 92 93 99
1 comparison
N/2
1 comparison
N/4
1 comparison
N/8
1 comparison
.
.
.
1
1 comparison
Number of steps is at
most Log2N
Summary
BUBBLE SORT
Sorting
2
42
77
1
5
35
2
12
3
35
5
101
12
4
42
6
77
101
2
42
3
35
4
12
6
101
3
35
4
12
6
101
7735 Swap 35
77
4
12
6
101
2
35
77
12 Swap 12
77
6
101
2
35
3
12
4
77
6
101
No need to swap
2
35
3
12
4
77
6
101
5 Swap 101
5
2
35
3
12
4
77
6
5
101
The Bubble Up
Algorithm
index <- 1
last_compare_at <- n 1
loop
exitif(index > last_compare_at)
if(A[index] > A[index + 1]) then
Swap(A[index], A[index + 1])
endif
index <- index + 1
endloop
LB
Items of Interest
2
35
3
12
4
77
6
5
101
If we have N elements
2
35
N-1
35
5
1
77
4
3
35
42
101
6
77
5
101
6
77
5
42
4
6
5
42
35
2
12
3
5
42
35
12
12
12
12
101
6
77
5
101
6
77
101
2
42
1
42
12
12
12
35
12
4
77
4
3
35
4
42
6
101
5
6
5
5
101
6
77
5
42
5
2
42
2
1
12
35
35
35
101
6
77
5
101
6
77
101
2
35
3
5
4
42
6
77
101
N is // Size of Array
Arr_Type definesa Array[1..N] of Num
Procedure Swap(n1, n2 isoftype in/out Num)
temp isoftype Num
temp <- n1
n1
<- n2
n2
<- temp
endprocedure // Swap
Outer loop
loop
exitif(to_do = 0)
index <- 1
loop
exitif(index > to_do)
if(A[index] > A[index + 1]) then
Swap(A[index], A[index + 1])
endif
index <- index + 1
endloop
to_do <- to_do - 1
endloop
endprocedure // Bubblesort
Inner loop
Already Sorted
Collections?
2
12
3
35
4
42
6
77
101
An Animated Example
N
to_do
did_swap
true
index
98 23 45 14
1
6 67 33 42
5
An Animated Example
N
to_do
index
did_swap false
98 23 45 14
1
6 67 33 42
5
An Animated Example
N
to_do
index
did_swap false
Swap
98 23 45 14
1
6 67 33 42
5
An Animated Example
N
to_do
index
did_swap
true
Swap
23 98 45 14
1
6 67 33 42
5
An Animated Example
N
to_do
index
did_swap
23 98 45 14
1
true
6 67 33 42
5
An Animated Example
N
to_do
index
did_swap
true
Swap
23 98 45 14
1
6 67 33 42
5
An Animated Example
N
to_do
index
did_swap
true
Swap
23 45 98 14
1
6 67 33 42
5
An Animated Example
N
to_do
index
did_swap
23 45 98 14
1
true
6 67 33 42
5
An Animated Example
N
to_do
index
did_swap
true
Swap
23 45 98 14
1
6 67 33 42
5
An Animated Example
N
to_do
index
did_swap
true
Swap
23 45 14 98
1
6 67 33 42
5
An Animated Example
N
to_do
index
did_swap
23 45 14 98
1
true
6 67 33 42
5
An Animated Example
N
to_do
index
did_swap
true
Swap
23 45 14 98
1
6 67 33 42
5
An Animated Example
N
to_do
index
did_swap
true
Swap
23 45 14 6
1
98 67 33 42
5
An Animated Example
N
to_do
index
did_swap
23 45 14 6
1
true
98 67 33 42
5
An Animated Example
N
to_do
index
did_swap
true
Swap
23 45 14 6
1
98 67 33 42
5
An Animated Example
N
to_do
index
did_swap
true
Swap
23 45 14 6
1
67 98 33 42
5
An Animated Example
N
to_do
index
did_swap
23 45 14 6
1
true
67 98 33 42
5
An Animated Example
N
to_do
index
did_swap
true
Swap
23 45 14 6
1
67 98 33 42
5
An Animated Example
N
to_do
index
did_swap
true
Swap
23 45 14 6
1
67 33 98 42
5
An Animated Example
N
to_do
index
did_swap
23 45 14 6
1
true
67 33 98 42
5
An Animated Example
N
to_do
index
did_swap
true
Swap
23 45 14 6
1
67 33 98 42
5
An Animated Example
N
to_do
index
did_swap
true
Swap
23 45 14 6
1
67 33 42 98
5
to_do
index
did_swap
23 45 14 6
1
true
67 33 42 98
5
to_do
index
did_swap false
23 45 14 6
1
67 33 42 98
5
to_do
index
did_swap false
No Swap
23 45 14 6
1
67 33 42 98
5
to_do
index
did_swap false
23 45 14 6
1
67 33 42 98
5
to_do
index
did_swap false
Swap
23 45 14 6
1
67 33 42 98
5
to_do
index
did_swap
true
Swap
23 14 45 6
1
67 33 42 98
5
to_do
index
did_swap
23 14 45 6
1
true
67 33 42 98
5
to_do
index
did_swap
true
Swap
23 14 45 6
1
67 33 42 98
5
to_do
index
did_swap
true
Swap
23 14 6
1
45 67 33 42 98
4
to_do
index
did_swap
23 14 6
1
true
45 67 33 42 98
4
to_do
index
did_swap
true
No Swap
23 14 6
1
45 67 33 42 98
4
to_do
index
did_swap
23 14 6
1
true
45 67 33 42 98
4
to_do
index
did_swap
true
Swap
23 14 6
1
45 67 33 42 98
4
to_do
index
did_swap
true
Swap
23 14 6
1
45 33 67 42 98
4
to_do
index
did_swap
23 14 6
1
true
45 33 67 42 98
4
to_do
index
did_swap
true
Swap
23 14 6
1
45 33 67 42 98
4
to_do
index
did_swap
true
Swap
23 14 6
1
45 33 42 67 98
4
to_do
index
did_swap
23 14 6
1
true
45 33 42 67 98
4
to_do
index
did_swap false
23 14 6
1
45 33 42 67 98
4
to_do
index
did_swap false
Swap
23 14 6
1
45 33 42 67 98
4
to_do
index
did_swap
true
Swap
14 23 6
1
45 33 42 67 98
4
to_do
index
did_swap
14 23 6
1
true
45 33 42 67 98
4
to_do
index
did_swap
true
Swap
14 23 6
1
45 33 42 67 98
4
to_do
index
did_swap
true
Swap
14 6
1
23 45 33 42 67 98
3
to_do
index
did_swap
14 6
1
true
23 45 33 42 67 98
3
to_do
index
did_swap
true
No Swap
14 6
1
23 45 33 42 67 98
3
to_do
index
did_swap
14 6
1
true
23 45 33 42 67 98
3
to_do
index
did_swap
true
Swap
14 6
1
23 45 33 42 67 98
3
to_do
index
did_swap
true
Swap
14 6
1
23 33 45 42 67 98
3
to_do
index
did_swap
14 6
1
true
23 33 45 42 67 98
3
to_do
index
did_swap
true
Swap
14 6
1
23 33 45 42 67 98
3
to_do
index
did_swap
true
Swap
14 6
1
23 33 42 45 67 98
3
to_do
index
did_swap
14 6
1
true
23 33 42 45 67 98
3
to_do
index
did_swap false
14 6
1
23 33 42 45 67 98
3
to_do
index
did_swap false
Swap
14 6
1
23 33 42 45 67 98
3
to_do
index
did_swap
true
Swap
6
1
14 23 33 42 45 67 98
2
to_do
index
6
1
did_swap
true
14 23 33 42 45 67 98
2
to_do
index
did_swap
true
No Swap
6
1
14 23 33 42 45 67 98
2
to_do
index
6
1
did_swap
true
14 23 33 42 45 67 98
2
to_do
index
did_swap
true
No Swap
6
1
14 23 33 42 45 67 98
2
to_do
index
6
1
did_swap
true
14 23 33 42 45 67 98
2
to_do
index
did_swap
true
No Swap
6
1
14 23 33 42 45 67 98
2
to_do
index
6
1
did_swap
true
14 23 33 42 45 67 98
2
to_do
index
6
1
did_swap false
14 23 33 42 45 67 98
2
to_do
index
did_swap false
No Swap
6
1
14 23 33 42 45 67 98
2
to_do
index
6
1
did_swap false
14 23 33 42 45 67 98
2
to_do
index
did_swap false
No Swap
6
1
14 23 33 42 45 67 98
2
to_do
index
6
1
did_swap false
14 23 33 42 45 67 98
2
to_do
index
did_swap false
No Swap
6
1
14 23 33 42 45 67 98
2
to_do
index
6
1
did_swap false
Finished fifth Bubble Up
14 23 33 42 45 67 98
2
Finished Early
N
to_do
index
did_swap false
We didnt do any swapping,
so all of the other elements
must be correctly placed.
We can skip the last two
passes of the outer loop.
6
1
14 23 33 42 45 67 98
2
Summary
Truth in CS Act
LB
MERGE SORT
Sorting
2
42
77
1
5
35
2
12
3
35
5
101
12
4
42
6
77
101
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
37
23
89
15
12
19
Algorithm
Mergesort(Passed an array)
if array size > 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)
LB
More TRUTH in CS
Honest.
s1
f1
s2
f2
Algorithm
Mergesort(Passed an array)
if array size > 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)
LB
98 23 45 14
6 67 33 42
98 23 45 14
98 23 45 14
6 67 33 42
6 67 33 42
98 23 45 14
98 23 45 14
98 23
45 14
6 67 33 42
6 67 33 42
98 23 45 14
98 23 45 14
98 23
98
23
45 14
6 67 33 42
6 67 33 42
98 23 45 14
98 23 45 14
98 23
98
23
Merge
45 14
6 67 33 42
6 67 33 42
98 23 45 14
98 23 45 14
98 23
98
23
23
Merge
45 14
6 67 33 42
6 67 33 42
98 23 45 14
98 23 45 14
98 23
98
23
23 98
Merge
45 14
6 67 33 42
6 67 33 42
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
6 67 33 42
6 67 33 42
98 23 45 14
98 23 45 14
98 23
98
23
45 14
45
14
23 98
Merge
6 67 33 42
6 67 33 42
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14
Merge
6 67 33 42
6 67 33 42
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
Merge
6 67 33 42
6 67 33 42
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
Merge
6 67 33 42
6 67 33 42
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
14
Merge
6 67 33 42
6 67 33 42
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
14 23
Merge
6 67 33 42
6 67 33 42
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
14 23 45
Merge
6 67 33 42
6 67 33 42
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
14 23 45 98
Merge
6 67 33 42
6 67 33 42
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
14 23 45 98
6 67 33 42
6 67 33 42
6 67
33 42
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
14 23 45 98
6 67 33 42
6 67 33 42
6 67
6
67
33 42
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
6 67 33 42
6 67 33 42
6 67
6
67
14 45
14 23 45 98
Merge
33 42
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
14 23 45 98
6 67 33 42
6 67 33 42
6 67
6
67
6
Merge
33 42
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
14 23 45 98
6 67 33 42
6 67 33 42
6 67
6
67
6 67
Merge
33 42
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
14 23 45 98
6 67 33 42
6 67 33 42
6 67
33 42
33
67
6 67
42
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
14 23 45 98
6 67 33 42
6 67 33 42
6 67
33 42
33
67
42
6 67
Merge
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
14 23 45 98
6 67 33 42
6 67 33 42
6 67
33 42
33
67
6 67
42
33
Merge
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
14 23 45 98
6 67 33 42
6 67 33 42
6 67
33 42
33
67
6 67
42
33 42
Merge
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
6 67 33 42
6 67 33 42
6 67
33 42
33
67
6 67
42
33 42
14 23 45 98
Merge
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
14 23 45 98
6 67 33 42
6 67 33 42
6 67
33 42
33
67
6 67
42
33 42
6
Merge
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
14 23 45 98
6 67 33 42
6 67 33 42
6 67
33 42
33
67
6 67
42
33 42
6 33
Merge
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
14 23 45 98
6 67 33 42
6 67 33 42
6 67
33 42
33
67
6 67
42
33 42
6 33 42
Merge
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
14 23 45 98
6 67 33 42
6 67 33 42
6 67
33 42
33
67
6 67
42
33 42
6 33 42 67
Merge
98 23 45 14
6 67 33 42
98 23 45 14
98 23
98
23
23 98
6 67 33 42
45 14
45
14
6 67
33 42
33
14 45
67
6 67
33 42
6 33 42 67
14 23 45 98
Merge
42
98 23 45 14
6 67 33 42
98 23 45 14
98 23
98
23
23 98
6 67 33 42
45 14
45
14
6 67
33 42
33
14 45
67
6 67
33 42
6 33 42 67
14 23 45 98
6
Merge
42
98 23 45 14
6 67 33 42
98 23 45 14
98 23
98
23
6 67 33 42
45 14
45
23 98
14
6 67
33 42
33
14 45
67
6 67
33 42
6 33 42 67
14 23 45 98
6 14
Merge
42
98 23 45 14
6 67 33 42
98 23 45 14
98 23
98
23
23 98
6 67 33 42
45 14
45
14
6 67
33 42
33
14 45
67
6 67
33 42
6 33 42 67
14 23 45 98
6 14 23
Merge
42
98 23 45 14
6 67 33 42
98 23 45 14
98 23
98
23
23 98
6 67 33 42
45 14
45
14
6 67
33 42
33
14 45
67
6 67
33 42
6 33 42 67
14 23 45 98
6 14 23 33
Merge
42
98 23 45 14
6 67 33 42
98 23 45 14
98 23
98
23
23 98
6 67 33 42
45 14
45
14
6 67
33 42
33
14 45
67
6 67
33 42
6 33 42 67
14 23 45 98
6 14 23 33 42
Merge
42
98 23 45 14
6 67 33 42
98 23 45 14
98 23
98
23
23 98
6 67 33 42
45 14
45
14
6 67
33 42
33
14 45
67
6 67
33 42
6 33 42 67
14 23 45 98
6 14 23 33 42 45
Merge
42
98 23 45 14
6 67 33 42
98 23 45 14
98 23
98
23
23 98
6 67 33 42
45 14
45
14
6 67
33 42
33
14 45
67
6 67
33 42
6 33 42 67
14 23 45 98
6 14 23 33 42 45 67
Merge
42
98 23 45 14
6 67 33 42
98 23 45 14
98 23
98
23
23 98
6 67 33 42
45 14
45
14
6 67
33 42
33
14 45
67
6 67
33 42
6 33 42 67
14 23 45 98
6 14 23 33 42 45 67 98
Merge
42
98 23 45 14
98 23 45 14
98 23
98
23
23 98
45 14
45
14
14 45
14 23 45 98
6 67 33 42
6 67 33 42
6 67
33 42
33
67
6 67
42
33 42
6 33 42 67
6 14 23 33 42 45 67 98
98 23 45 14
6 67 33 42
6 14 23 33 42 45 67 98
Summary
RADIX SORT
Bucket Sort
Radix Sort
1 343 125
0
1
2
3
4
5
6
7
8
9
Pass 1
64
0
1
2
3
4
5
6
7
8
9
1 343 125
64
0
1
2
3
4
5
6
7
8
9
1 343 125
64
0
1
2
3
4
5
6
7
8
9
64
1 343 125
64
0
1
2
3
4
5
6
7
8
9
64
1 343 125
64
0
1
2
3
4
64
5
6
7
8
9
1 343 125
64
0
1
2
3
4
64
5
6
7
8
9
1 343 125
64
0
1
2
3
4
64
5
6
216
7
8
9
1 343 125
64
0
1
2
3
4
64
5
6
216
7
8
9
1 343 125
64
0
1
2
512
3
4
64
5
6
216
7
8
9
1 343 125
64
0
1
2
512
3
4
64
5
6
216
7
8
9
1 343 125
64
0
1
2
512
3
4
64
5
6
216
27
1 343 125
64
0
1
2
512
3
4
64
5
6
216
27
1 343 125
64
0
1
2
512
3
4
64
5
6
216
27
729
1 343 125
64
0
1
2
512
3
4
64
5
6
216
27
729
1 343 125
64
0
1
2
512
3
4
64
5
6
216
27
729
1 343 125
64
0
1
2
512
3
4
64
5
6
216
27
729
1 343 125
64
0
512
3
4
64
5
6
216
27
729
1 343 125
64
0
512
3
4
64
5
6
216
27
729
1 343 125
64
0
512
343
64
5
6
216
27
729
1 343 125
64
0
512
343
64
5
6
216
27
729
1 343 125
64
0
512
343
64
125
216
27
729
1 343 125
64
0
512
343
64
125
216
27
729
1 343 125
512
343
64
125
216
27
729
512
343
64
125
216
27
729
0
0
512
343
64
125
216
27
729
0
0
1
512
343
64
125
216
27
729
0
0
1
512
343
64
125
216
27
729
0
0
1
512
343
64
125
216
27
729
0
0
1
2
512
343
64
125
216
27
729
0
0
1
2
512
343
64
125
216
27
729
1 512
0
0
1
2
3
343
64
125
216
27
729
1 512
0
1
2
3
4
5
6
7
8
9
Pass 2
8 729
8 729
0
0
1
2
3
4
5
6
7
8
9
8 729
0
0
1
2
3
4
5
6
7
8
9
8 729
0
0
1
2
3
4
5
6
7
8
9
8 729
0
0
1
2
3
4
5
6
7
8
9
8 729
0
0
512
2
3
4
5
6
7
8
9
8 729
0
0
512
2
3
4
5
6
7
8
9
8 729
0
0
512
2
3
4
5
6
7
8
9
343
8 729
0
0
512
2
3
4
5
6
7
8
9
343
8 729
0
0
512
2
3
4
343
5
6
7
8
9
64
8 729
0
0
512
2
3
4
343
5
6
7
8
9
64
8 729
0
0
512
125
3
4
343
5
6
7
8
9
64
8 729
0
0
512
125
3
4
343
5
6
7
8
9
64
8 729
0
0
512
216
125
3
4
343
5
6
7
8
9
64
8 729
0
0
512
216
125
3
4
343
5
6
7
8
9
64
8 729
0
0
512
216
125
27
3
4
343
5
6
7
8
9
64
8 729
0
0
512
216
125
27
3
4
343
5
6
7
8
9
64
0
0
512
216
125
27
3
4
343
5
6
7
8
9
64
8 729
0
0
512
216
125
27
3
4
343
5
6
7
8
9
64
8 729
0
0
512
216
125
27
3
4
343
5
6
7
8
9
64
729
8 729
0
0
512
216
125
27
3
4
343
5
6
7
8
9
64
729
8 729
512
216
125
27
3
4
343
5
6
7
8
9
64
729
0
0
512
216
125
27
3
4
343
5
6
7
8
9
64
729
0
0
1
512
216
125
27
3
4
343
5
6
7
8
9
64
729
0
0
1
512
216
125
27
3
4
343
5
6
7
8
9
64
729
8 512 216
0
0
1
2
125
3
4
343
5
6
7
8
9
64
27
729
8 512 216
0
0
1
2
125
3
4
343
5
6
7
8
9
64
27
729
0
0
1
2
3
4
343
5
6
7
8
9
64
0
0
1
2
3
4
343
5
6
7
8
9
64
0
0
1
2
3
4
5
6
7
8
9
64
0
0
1
2
3
4
5
6
7
8
9
64
0
1
2
3
4
5
6
7
8
9
Pass 3
000 1
0
1
2
3
4
5
6
7
8
9
0
0
1
2
3
4
5
6
7
8
9
0
0
1
2
3
4
5
6
7
8
9
0
0
1
2
3
4
5
6
7
8
9
0
0
1
2
3
4
5
6
7
8
9
0
0
1
2
3
4
5
6
7
8
9
0
0
1
2
3
4
5
6
7
8
9
512
0
0
1
2
3
4
5
6
7
8
9
512
0
0
1
2
216
3
4
5
6
7
8
9
512
0
0
1
2
216
3
4
5
6
7
8
9
512
0
0
125
216
3
4
5
6
7
8
9
512
0
0
125
216
3
4
5
6
7
8
9
512
0
0
125
216
3
4
5
6
7
8
9
512
1
27
0
0
125
216
3
4
5
6
7
8
9
512
1
27
0
0
125
216
3
4
5
512
6
7
8
9
729
1
27
0
0
125
216
3
4
5
512
6
7
8
9
729
1
27
0
0
125
216
343
4
5
512
6
7
8
9
729
1
27
0
0
125
216
343
4
5
512
6
7
8
9
729
1
27
0
0
125
216
343
4
5
512
6
7
8
9
729
1
27
0
0
125
216
343
4
5
512
6
7
8
9
729
1
27
125
216
343
4
5
512
6
7
8
9
729
27
64
0
0
125
216
343
4
5
512
6
7
8
9
729
1
27
27 64
64
0
0
1
125
216
343
4
5
512
6
7
8
9
729
27 64
0
0
1
125
216
343
4
5
512
6
7
8
9
729
27 64 125
0
0
1
2
216
343
4
5
512
6
7
8
9
729
27 64 125
0
0
1
2
216
343
4
5
512
6
7
8
9
729
27 64 125 216
0
0
1
2
3
343
4
5
512
6
7
8
9
729
27 64 125 216
0
0
1
2
3
343
4
5
512
6
7
8
9
729
0
0
1
2
3
4
5
512
6
7
8
9
729
0
0
1
2
3
4
5
512
6
7
8
9
729
0
0
1
2
3
4
5
6
7
8
9
729
0
0
1
2
3
4
5
6
7
8
9
729
0
0
1
2
3
4
5
6
7
8
9
The End