I = 1 P = 1 while (I < N) do { P = P * I I = I + 1 }
T(n) = 2 + (N - I) * (1 + 1 + 1) = 2 + (N - 1) * (3) = O(2 + (3N - 3)) = O(N)
z = 1.0 t = a k = n while K > 0 do { if odd(k) then z = z * t k = k/2 if K <> 0 then t = t * t }
O(1) == 3 assignments O(1) == 4 statements k = n, n/2, n/4, n/8, .... stop m iterations
for I = 1 to N - 1 do for J = N downto I + 1 do if A[J-1] > A[J] then -- count as 3 assignments swap(A[J-1], a[J])
inner loop
O((n - i) * 1) = O(n-i)
outer loop