I have the following algorithm and the runtime complexity is O(N^2) but I want to have a deeper understanding of it rather than just memorizing common runtimes. 

What would be the right approach to break it down and analyze it with `i+1` in the inner for loop taken into account?

```
void printunorderedPairs(int[] array) {
    for(int i=0; i<array.length; i++) {
        for(int j=i+1; j<array.length; j++) {
            System.out.println(array[i] + "," + array[j]);
        }
    }
}

```

**EDIT**

Asking for how to analyze a specific question