Trong phần này chúng ta sẽ xem một bài toán thú vị. Chúng ta sẽ xem hai đoạn code. Cả hai đều có hai vòng lặp lồng nhau. Chúng ta phải xác định đoạn nào chạy nhanh hơn. (Chúng ta giả định trình biên dịch không tối ưu hóa code).
Đoạn 1
for(int i = 0; i < 10; i++){
for(int j = 0; j<100; j++){
//code
}
}Đoạn 2
for(int i = 0; i < 100; i++){
for(int j = 0; j<10; j++){
//code
}
}Cả hai code sẽ chạy cùng số lần. Code bên trong hai vòng lặp sẽ thực thi 10.000 lần trong cả hai trường hợp. Nhưng nếu chúng ta nhìn kỹ, chúng ta có thể hiểu rằng đoạn code thứ hai đang làm nhiều tác vụ hơn đoạn thứ nhất. Trong đoạn code đầu tiên, vòng lặp nội sẽ được thực thi 10 lần. Vì vậy, việc khởi tạo, kiểm tra điều kiện và phép tăng sẽ được thực thi 10 lần. Nhưng đối với đoạn code thứ hai, vòng lặp nội sẽ được thực thi 100 lần. Vì vậy khởi tạo, kiểm tra điều kiện và phép tăng sẽ được thực thi 100 lần. Do đó nó sẽ mất nhiều thời gian hơn đoạn đầu tiên.