Hello!
Everything in your assessment is correct, except for your reasoning regarding the inner for loop.
Basically the inner loop get 2 added every time with is O(n/2) -> O(n) runtime removing the constant.
Combine this with the fact it is nested in another O(n) loop and this gives you O(n^2).
A log for loop would have to multiply the iterating variable by 2 or another constant.
Examples:
i = 10.
In the above for loop we would iterate j through the following numbers: 1, 3, 5, 7, 9
This is 5 iterations total. 5 = 10/2. O(n/2) => O(n)
In a loop that multiplied by 2 we would iterate j through 1, 2, 4, 8
This is 4 iterations total. log(10) = 3, so this would be O(log(n)+1) => O(log(n)) removing the constant.
Hope this helps you understand!