L'algoritmo non l'ho guardato ma quell'if è sbagliato.
if (ok = true) {} significa "assegna true a ok e poi controlla se è true". Tradotto: quella condizione sarà sempre vera! Puoi correggere con if (ok) {} o if (ok == true) {} (quest'ultimo modo è bruttissimo però).