update R6 and rebuild at 9.28
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -3,3 +3,5 @@
|
|||||||
|
|
||||||
node_modules/
|
node_modules/
|
||||||
.npm
|
.npm
|
||||||
|
|
||||||
|
__pycache__
|
||||||
BIN
out/reviews/R1.pdf
(Stored with Git LFS)
BIN
out/reviews/R1.pdf
(Stored with Git LFS)
Binary file not shown.
BIN
out/reviews/R2.pdf
(Stored with Git LFS)
BIN
out/reviews/R2.pdf
(Stored with Git LFS)
Binary file not shown.
BIN
out/reviews/R3.pdf
(Stored with Git LFS)
BIN
out/reviews/R3.pdf
(Stored with Git LFS)
Binary file not shown.
BIN
out/reviews/R4-1.pdf
(Stored with Git LFS)
BIN
out/reviews/R4-1.pdf
(Stored with Git LFS)
Binary file not shown.
BIN
out/reviews/R4-2.pdf
(Stored with Git LFS)
BIN
out/reviews/R4-2.pdf
(Stored with Git LFS)
Binary file not shown.
BIN
out/reviews/R5.pdf
(Stored with Git LFS)
BIN
out/reviews/R5.pdf
(Stored with Git LFS)
Binary file not shown.
BIN
out/reviews/R6.pdf
(Stored with Git LFS)
Normal file
BIN
out/reviews/R6.pdf
(Stored with Git LFS)
Normal file
Binary file not shown.
115
reviews/R6.md
115
reviews/R6.md
@@ -3,3 +3,118 @@
|
|||||||
* Hajin Ju, 2024062806
|
* Hajin Ju, 2024062806
|
||||||
|
|
||||||
## Problem 1
|
## Problem 1
|
||||||
|
|
||||||
|
Illustrate the operation of `PARTITION` on the array $A = \set{2, 8, 7, 1, 3, 5, 6, 4}$
|
||||||
|
|
||||||
|
### Solution 1
|
||||||
|
|
||||||
|
```python {cmd output=html hide}
|
||||||
|
from __pyfunc__.r6 import *
|
||||||
|
from bs4 import BeautifulSoup
|
||||||
|
|
||||||
|
data = [2, 8, 7, 1, 3, 5, 6, 4]
|
||||||
|
hl = [0, 0, 0, 0, 0, 0, 1, 0]
|
||||||
|
|
||||||
|
print(
|
||||||
|
create_array_table(data,
|
||||||
|
[0, 0, 0, 0, 0, 0, 1, 0]
|
||||||
|
, 0, 0),
|
||||||
|
)
|
||||||
|
|
||||||
|
print(
|
||||||
|
create_array_table(data,
|
||||||
|
[1, 0, 0, 0, 0, 0, 1, 0],
|
||||||
|
1, 0)
|
||||||
|
)
|
||||||
|
|
||||||
|
print(
|
||||||
|
create_array_table(
|
||||||
|
[2, 8, 7, 1, 3, 5, 6, 4],
|
||||||
|
[1, 1, 0, 0, 0, 0, 1, 0],
|
||||||
|
1, 1)
|
||||||
|
)
|
||||||
|
|
||||||
|
print(create_array_table(
|
||||||
|
[2, 8, 7, 1, 3, 5, 6, 4],
|
||||||
|
[1, 0, 1, 0, 0, 0, 1, 0],
|
||||||
|
1, 2
|
||||||
|
))
|
||||||
|
|
||||||
|
print(create_array_table(
|
||||||
|
[2, 1, 7, 8, 3, 5, 6, 4],
|
||||||
|
[0, 1, 0, 1, 0, 0, 1, 0],
|
||||||
|
2, 2
|
||||||
|
))
|
||||||
|
|
||||||
|
print(create_array_table(
|
||||||
|
[2, 1, 3, 8, 7, 5, 6, 4],
|
||||||
|
[0, 0, 1, 0, 1, 0, 1, 0],
|
||||||
|
3, 2
|
||||||
|
))
|
||||||
|
|
||||||
|
print(create_array_table(
|
||||||
|
[2, 1, 3, 8, 7, 5, 6, 4],
|
||||||
|
[0, 0, 1, 0, 0, 1, 1, 0],
|
||||||
|
3, 3
|
||||||
|
))
|
||||||
|
|
||||||
|
print(create_array_table(
|
||||||
|
[2, 1, 3, 8, 7, 5, 6, 4],
|
||||||
|
[0, 0, 1, 0, 0, 0, 1, 0],
|
||||||
|
3, 4
|
||||||
|
))
|
||||||
|
|
||||||
|
print(create_array_table(
|
||||||
|
[2, 1, 3, 4, 8, 7, 5, 6],
|
||||||
|
[0, 0, 1, 1, 0, 0, 0, 1],
|
||||||
|
0, 0
|
||||||
|
))
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Problem 2
|
||||||
|
|
||||||
|
Answer questions about the following function `SELECT(A, p, r, i)` where $r-p + 1 = n$
|
||||||
|
|
||||||
|
```py
|
||||||
|
SELECT(A, p, r, i)
|
||||||
|
if p == r
|
||||||
|
return A[p]
|
||||||
|
q = PARTITION(A, p, r)
|
||||||
|
k = q - p + 1
|
||||||
|
if i == k
|
||||||
|
return A[q]
|
||||||
|
else if i < k
|
||||||
|
return SELECT(A, p, q - 1, i)
|
||||||
|
else
|
||||||
|
return SELECT(A, q + 1, r, i - k)
|
||||||
|
```
|
||||||
|
|
||||||
|
* What does it do?
|
||||||
|
* What is the worst-case running time?
|
||||||
|
* What is the best-case running time?
|
||||||
|
|
||||||
|
|
||||||
|
### Solution 2-a
|
||||||
|
|
||||||
|
`SELECT` selects `i`-th smallest element in the array `A`.
|
||||||
|
|
||||||
|
### Solution 2-b
|
||||||
|
|
||||||
|
The worst-case occurs when the `PARTITION` partitiend the array unbalanced.
|
||||||
|
|
||||||
|
So, time-complexity of the case is:
|
||||||
|
|
||||||
|
$$T(n) = T(n-1) + O(n)$$
|
||||||
|
|
||||||
|
$$\therefore T(n) = O(n^2)$$
|
||||||
|
|
||||||
|
### Solution 2-c
|
||||||
|
|
||||||
|
The best-case occurs when the `PARTITION` partitiend the array balanced, which means pivot is median.
|
||||||
|
|
||||||
|
So, time-complexity of the case is:
|
||||||
|
|
||||||
|
$$T(n) = T(n/2) + O(n)$$
|
||||||
|
|
||||||
|
$$\therefore T(n) = O(n)$$
|
||||||
|
|||||||
54
reviews/__pyfunc__/r6.py
Normal file
54
reviews/__pyfunc__/r6.py
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
from bs4 import BeautifulSoup
|
||||||
|
|
||||||
|
def create_array_table(data: list, border: list, cnt_p1: int, cnt_p2: int) -> str:
|
||||||
|
STYLE_ARRAY_TABLE = "border-collapse: collapse;"
|
||||||
|
STYLE_TD_TEMPLATE = "border: 1px solid black; width: 1.2em; height: 1.6rem; text-align: center; font-size: 1.3rem;"
|
||||||
|
|
||||||
|
def style_with_rborder(style: str):
|
||||||
|
style += "border-right: 6px solid black;"
|
||||||
|
return style
|
||||||
|
|
||||||
|
def style_with_p1(style: str):
|
||||||
|
style += "background-color: lightgray;"
|
||||||
|
return style
|
||||||
|
def style_with_p2(style: str):
|
||||||
|
style += "background-color: gray;"
|
||||||
|
return style
|
||||||
|
|
||||||
|
if len(data) != len(border):
|
||||||
|
return ""
|
||||||
|
|
||||||
|
soup = BeautifulSoup("", "html.parser")
|
||||||
|
table = soup.new_tag('table', attrs={'style': STYLE_ARRAY_TABLE})
|
||||||
|
tr = soup.new_tag('tr')
|
||||||
|
|
||||||
|
for i in range(len(data)):
|
||||||
|
style = STYLE_TD_TEMPLATE
|
||||||
|
if i < cnt_p1:
|
||||||
|
style = style_with_p1(style)
|
||||||
|
if border[i]:
|
||||||
|
style = style_with_rborder(style)
|
||||||
|
elif cnt_p1 <= i < cnt_p1 + cnt_p2:
|
||||||
|
style = style_with_p2(style)
|
||||||
|
if border[i]:
|
||||||
|
style = style_with_rborder(style)
|
||||||
|
else:
|
||||||
|
if border[i]:
|
||||||
|
style = style_with_rborder(style)
|
||||||
|
td = soup.new_tag('td', attrs={'style': style})
|
||||||
|
td.string = str(data[i])
|
||||||
|
|
||||||
|
tr.append(td)
|
||||||
|
|
||||||
|
table.append(tr)
|
||||||
|
soup.append(table)
|
||||||
|
|
||||||
|
return str(soup)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user