We are just concerned about the 'void bubbleSort(int arr[])' method, where the sorting logic is defined.
We have the array
Which we have passed to the 'bubbleSort(..)' method.
In the 'bubbleSort(..)' method, we have taken the count of the elements of the array.
Now, let us corelate this code with the explanation of Bubble Sort.
Let us take the same diagram.
And take the chunk of code and explain it.
So, the outer loop, i.e.
Determines the Passes. If you see the above explanation you can find the first pass,
Then comes the the inner loop, i.e.
Which determines the iterations.
Next, Comes the comparison where we compare 1st and 2nd element. And if the 1st element is greater than 2nd element we swap it.
Where arr[j] refers to the first element i.e. 7 and arr[j+1] refers to the second element i.e. 4.
And continue in the same pattern.
If we consider the Bubble Sort Algorithm, there are two loops. Firstly, there is the 'for' loop.
And inside the 'for' loop there is also a 'for' loop.
The 'for' loop executes n times(Assuming the array contains n elements).
Now, for each iteration of 'for' loop, the nested 'for' loop also executes approximately 'n' times.
Which means for 1st iteration of 'for' loop,
Similarly, for 2nd iteration of 'for' loop,
Similarly, for nth iteration of 'for' loop,
So, the running time is close to n*n or n^2.
So, in worst case the running time is O(n^2).