Computation of adjoint functors (sheafification) In a (complete) category, limits can be "computed" assuming one knows how to compute products and equalisers.
I have seen it mentioned that adjoint functors can be found using certain limits/colimits. Is this construction related to the adjoint functor theorem, or is that less constructive?
I am looking for an accessible reference on this topic, with the very concrete goal in mind of computing a left adjoint of $\mathrm{PSh}(\mathcal{C}) \to \mathrm{Sh}(\mathcal{C})$, that is sheafifcation.
Thanks
 A: Here are three ways of constructing the left adjoint of $\mathbf{Sh}(\mathcal{C}, J) \hookrightarrow \mathbf{Psh}(\mathcal{C})$ using limits or colimits:


*

*Use the accessible (pun intended) adjoint functor theorem. (See Chapter 1 of Locally presentable and accessible categories or Chapter 5 of Handbook of categorical algebra, volume 2.) 

*Use a small object argument. (See here for details.)

*Use Grothendieck's plus construction twice. (See here or Chapter III of Sheaves in geometry and logic.)
Of the three constructions, only the third one explains why sheafification preserves finite limits. The idea is very simple; indeed, so simple that one is at first surprised that it doesn't work, and then surprised again that it works after just one repetition. 
Let $F$ be a presheaf on $\mathcal{C}$. Then for any sieve $\mathfrak{U}$ on a fixed object $C$ in $\mathcal{C}$, one can form the set $F (\mathfrak{U})$ of matching families of sections over $\mathfrak{U}$. Evidently, if $\mathfrak{U} \subseteq \mathfrak{V}$, then we have a map $F (\mathfrak{U}) \to F (\mathfrak{V})$, and in fact we get a diagram of sets indexed by the opposite of the poset of sieves on $C$. If $J$ is a Grothendieck topology, then the subposet $J (C)$ of $J$-covering sieves on $C$ is a filter, and $F^+ (C)$ is defined to be the filtered colimit $\varinjlim_{\mathfrak{U} : J (C)^\mathrm{op}} F (\mathfrak{U})$. With a bit more work we find that $F^+$ is a presheaf on $\mathcal{C}$. 
Thus, $F^+$ is the presheaf of equivalence classes of matching families of sections of $F$. As it turns out, $F^+$ is in general only a separated presheaf and not a sheaf; but if $F$ is already separated then $F^+$ is a sheaf. Thus $F^{++}$ is always a sheaf. One can then show that the evident morphism $F \to F^{++}$ exhibits $F^{++}$ as the sheafification of $F$.
