/  2
 
CSE 150 Fall 2009: Homework #4
Chao Xu 
Problem 1
(
n
) =
(
n/
2
) + 1 = Θ(log
n
)
(
n
) = 2
(
n/
2
) + 1 = Θ(
n
)
(
n
) = 4
(
n/
2
) + 1 = Θ(
n
2
)
(
n
) =
(
n
1) + 1 = Θ(
n
) [This is
(
n
) =
n
written recursively]
(
n
) = 2
(
n
1) + 1 = Θ(2
n
) [2
n
(
n
)
3
n
]
(
n
) =
(
n/
2
) +
n
= Θ(
n
)
(
n
) = 4
(
n/
2
) +
n
= Θ(
n
2
)
Problem 2
The following will use
A
[
i,j
] for
A
[
i,...,j
] and if 
i > j
, it return nil.
procedure
(
A
[0
,n
1][0
,m
1]
,x
)
if 
A
=
nil
return
false
i
← 
n
2
 j
← 
m
2
k
A
[
i
][
 j
]
if 
m
= 1
n
= 1
return
k
=
x
if 
x < k
return
(
A
[0
,i
][0
,j
]
,x
)
(
A
[0
,i
][
 j
+ 1
,m
1]
,x
)
(
A
[
i
+ 1
,n
1][0
,j
]
,x
)
if 
x > k
return
(
A
[
i
+ 1
,n
1][
 j
+ 1
,m
1]
,x
)
(
A
[0
,i
][
 j
+ 1
,m
1]
,x
)
(
A
[
i
+ 1
,n
1][0
,j
]
,x
)
return
true
(
mn
) = 3
(
mn
4) + 1
(
mn
) = Θ(
mn
log
4
3
)
<
Θ(
mn
)
Note: There exist a 
Θ(
m
+
n
)
algorithm, but I fail to think of it when I hand in the hw.
Problem 3
procedure
insert(
L,x
)
if 
x
L.data
L
=
nilN.data
xN.next
L
return
L.next
= insert(
L.next,x
)
return
L
1

Share & Embed

More from this user

Add a Comment

Characters: ...