Al doilea algoritm are o complexitate de O(2n). Cu doua bucle imbricate (ca in primul exemplu) poti parcurge o matrice de NxN elemente. Cu doua bucle secventiale (ca in al doilea exemplu) poti parcurge doar doua linii (sau coloane) din respectiva matrice - hence, O(2n).
Oricum, in acest al doilea caz, complexitatea este, de fapt, O(n) - fiindca ne intereseaza rata de crestere a timpului de rulare (memoria ocupata, etc) al algoritmilor. Fiindca "2" este constant, rata de crestere este data de N => complexitatea este de O(n).
Bafta
P.S. Spuneai ca tu crezi ca vor rula in acelasi timp. E usor de demonstrat ca bucla imbricata (din primul exemplu) se va executa de NxN ori ... incearca sa aduni cu 1 o variabila C (contor ... sa zicem

) in FOR-ul care foloseste "j" - si afiseaza variabila C chiar inainte de a se termina programul. In al doilea exemplu, fiecare bucla se executa de N ori, adica N + N. Poti face acelasi test cu o variabila contor daca nu ma crezi pe cuvant