Many biological systems can be viewed as algorithms designed by evolution to solve fundamental computing problems. I will present two such examples. First, I will describe how the olfactory circuit in the fly brain assigns similar activity patterns to similar input odors using a novel class of locality-sensitive hashing algorithms, which are of fundamental importance for solving nearest-neighbor search problems in computer science. Second, I will describe how plant architectures trade-off between universal network design principles — efficiency of nutrient transport vs costs in building infrastructure — using the theory of Pareto optimality. Discovering the strategies biological systems use to solve these problems can lead to new bio-inspired algorithms and new experimental hypotheses.