Here is a plan, shown for example smallest([5,3,1,4]).
p | s | |
---|---|---|
[3,1,4] | 5 | |
[1,4] | 3 | |
[4] | 1 | |
[ ] | 1 |
Here is an algorithm based on that plan.
int smallest(const List L) { int s = head(L); for(const List p = tail(L); !isEmpty(p); p = tail(p)) { s = min(s, head(p)); } return s; }