I already understood how the well-known algorithms like Graham's scan, Quickhull, etc. work, but I have difficulties in understanding 2 naive algorithms to compute the convex hull:
Let $S= \{p_1, \dots , p_n \}$ a set of points and $CH(S)$ the convex hull of $S$.
The first problem and corresponding algorithm are as follows.
Find the smallest subset $R \subset S$ for $CH(R) = CH(S)$. Since there are $2^n$ subsets, the complexity is $\mathcal{O}(2^n)$.
Pseudocode version:
foreach (s in S.subsets)
if (CH(R) == CH(S))
return R
Since we don't know $CH(S)$, and indeed it's our goal to compute $CH(S)$, how can we check if $CH(R) = CH(S)$?
The second problem is as follows.
Let $p,q,r,s \in S$. $s \in CH(S)$, if $s \not\in triangle(p,q,r)$
And here is the algorithm:
Shouldn't the first part of the sentence (of the problem) be
Let $p,q,r \in CH(S)$ and $s \in S$.
?
However, even in this case, we don't know what $CH(S)$ is.
My counterexample why this algorithm wouldn't work:
At the start, we check the $triangle(1, 2, 3)$, and see that $4$ is not in the triangle, and mark $4$ as not an element of the convex hull, but $4$ should be part of the CH!