### Các phương pháp tối ưu hóa mã trong C++
1. **Sử dụng cấu trúc dữ liệu hiệu quả**:
- Chọn đúng cấu trúc dữ liệu (như mảng, danh sách liên kết, cây, đồ thị) để phù hợp với yêu cầu.
2. **Giảm số lần gọi hàm**:
- Sử dụng inline functions hoặc macro để giảm chi phí gọi hàm cho các hàm nhỏ.
3. **Tối ưu hóa vòng lặp**:
- Giảm số lần lặp và tránh tính toán không cần thiết trong vòng lặp.
4. **Sử dụng tham chiếu thay vì sao chép**:
- Sử dụng tham chiếu (`&`) thay vì truyền đối số bằng giá trị để tiết kiệm bộ nhớ và thời gian.
5. **Tránh sử dụng các phép toán phức tạp**:
- Thay thế các phép toán phức tạp bằng các phép toán đơn giản hơn khi có thể.
### Giảm thiểu độ phức tạp thuật toán
1. **Phân tích thuật toán**:
- Xác định độ phức tạp thời gian và không gian của thuật toán để tìm cách cải tiến.
2. **Chọn thuật toán tối ưu hơn**:
- Thay thế thuật toán hiện tại bằng thuật toán có độ phức tạp thấp hơn (ví dụ: từ O(n^2) sang O(n log n)).
3. **Tận dụng tính chất đặc biệt**:
- Sử dụng các thuộc tính của bài toán (như dữ liệu đã được sắp xếp) để tối ưu hóa quy trình xử lý.
4. **Sử dụng lập trình động**:
- Áp dụng kỹ thuật lập trình động để giảm thiểu việc tính toán lại cho các vấn đề con đã giải quyết.
5. **Phân chia và chinh phục**:
- Sử dụng phương pháp phân chia và chinh phục để giải quyết bài toán lớn thành các bài toán nhỏ hơn, dễ quản lý hơn.