This algorithm is widely used in genomics. Here's an explanation by Ben Langmead, a computational biologist, with some Python code as well:
https://www.youtube.com/watch?v=4n7NPk5lwbIThe original paper, interestingly, only published as a report:
http://www.hpl.hp.com/techreports/Compaq-DEC/SRC-RR-124.pdf