Đôi khi ta tạo mảng bằng cấp phát động. Nếu mảng được cấp phát động, ta có thể gấp đôi kích thước bằng một số thao tác.
Giả sử kích thước ban đầu là 5.
Mảng ban đầu
| 0 | 1 | 2 | 3 | 4 |
| Phần tử 1 | Phần tử 2 | Phần tử 3 | Phần tử 4 | Phần tử 5 |
Sau khi gấp đôi, kích thước là:
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| Phần tử 1 | Phần tử 2 | Phần tử 3 | Phần tử 4 | Phần tử 5 | Phần tử 6 | Phần tử 7 | Phần tử 8 | Phần tử 9 | Phần tử 10 |
Để gấp đôi mảng arr kích thước n, arr[0…n-1]. Trước tiên tạo mảng mới kích thước m. Sao chép n phần tử từ arr sang mảng mới. Cuối cùng thay đổi arr trỏ đến mảng mới.
Tạo mảng kích thước m mất θ(m) thời gian (khởi tạo giá trị mặc định). Cần thêm θ(n) để sao chép. Tổng cộng θ(m + n). Thường m = 2n, nên θ(3n) ~ θ(n). Tuy nhiên, thao tác này tốn kém. Nhưng nếu摊 phân (amortized) qua n lần chèn tiếp theo, chỉ thêm θ(1) mỗi lần. Do đó, tăng kích thước mảng theo hằng số không ảnh hưởng đến độ phức tạp tiệm cận.