IMHO LSH are quite hard to implement correctly.
Great articles about NNS is at wiki. I'm using kd-tree for NNS for solving nearest neighbor problem when merge two triangle meshes together and it works quite well and pretty fast. It's also not that hard to implement (some implementations might be found by google easily).