A sparse marker extension tree algorithm for selecting the best set of haplotype tagging single nucleotide polymorphisms