Algorytm został po raz pierwszy zaproponowany przez Temple'a F. Smitha(inne języki) i Michaela S. Watermana(inne języki) w 1981 roku.[1] Podobnie jak algorytm Needleman-Wunscha, którego jest wariantem, algorytm Smitha-Watermana jest algorytmem programowania dynamicznego. W związku z tym posiada on pożądaną cechę, że gwarantuje znalezienie optymalnego lokalnego dopasowania względem używanego systemu punktacji (który obejmuje macierz substytucji(inne języki) i schemat punktacji przerw(inne języki)). Główną różnicą w stosunku do algorytmu Needleman-Wunscha jest to, że ujemne komórki macierzy punktacji są ustawiane na zero, co powoduje, że lokalne dopasowania (a więc dodatnio punktowane) są widoczne.[2] Procedura śledzenia ścieżki rozpoczyna się w komórce macierzy o najwyższej punktacji i trwa do napotkania komórki o punktacji zero, co prowadzi do uzyskania najwyżej punktowanego lokalnego dopasowania. Ze względu na swoją złożoność czasową rzędu sześcianowego, często nie może być praktycznie stosowany w przypadku problemów o dużych skalach i jest zastępowany na rzecz bardziej efektywnych obliczeniowo alternatyw, takich jak (Gotoh, 1982),[3] (Altschul(inne języki) i Erickson, 1986)[4] i (Myers i Miller, 1988)[5].