I'm trying to understand complexity class algorithms off of my professor's lecture notes, but I still can't get a hang of it.
void sort(int a[], int N) { //N is the length of the array
for (int base=0; base<N; ++base)
for (int check=base+1; check<N; ++check)
if (a[base] > a[check])
std::swap(a[base], a[check]);
}
On his notes he says the expression for this is 8N^2+12N+6.
From what I understand fully the complexity class for this is N^2 because it is the fastest growing out of the rest. We ignore constants because they're irrelevant when going to infinity.
However, I want to know how he got the constants.
I don't understand how he got the + 6. What exactly is run only a total of 6 times when this function is called once? I see that int base = 0 is created only once because it belongs on the outer for-loop.
Edit: So I found how the + 6 is simply the bare minimum this function needs to run. In the case that the for-loops are executed only once... so the total lines? Well we make a copy of a[] and int N, then we have our for-loops and if statement. Altogether everything adds to 6.
What about the 12N?