V.THƯ VIỆN ALGORITHM

Một phần của tài liệu Tổng quan về STL C++ (Trang 58)

III. CONTAINER & ITERATOR 1 Tổng quan về container

V.THƯ VIỆN ALGORITHM

Như đã giới thiệu trong các phần trước, STL cung cấp các thuật toán cơ bản nhằm mục đích giúp bạn không phải code lại những giải thuật quá cơ bản như (sắp xếp, thay thế, tìm kiếm...). Các công cụ này không những giúp bạn rút ngắn thời gian lập trình mà còn cả thời gian gỡ rối khi thuật toán cơ bản được cài đặt không chính xác.

Ngoài ra, với STL Algorithm, bạn có nhiều lựa chọn cho những thuật toán cơ bản. Ví dụ, với thuật toán sắp xếp, bạn có thể lựa chọn giữa thuật toán sắp xếp nhanh (quicksort) cho kết quả rất nhanh với độ phức tạp NlogN trong đa số các trường hợp, nhưng lại có độ phức tạp N*N trong trường hợp xấu nhất và thuật toán sắp xếp vung đống (heapsort) chạy chậm hơn quicksort nhưng có độ phức tạp trong mọi trường hợp là NlogN.

Chú ý rằng các thuật toán của STL Algorithm có thể áp dụng cho mọi kiểu iterator, kể cả con trỏ thường (không phải là iterator của STL). Như vậy, các thuật toán sắp xếp, tìm kiếm, thay thế không những áp dụng được cho các kiểu vector, list... mà còn có thể áp dụng cho mảng thông thường.

Do thư viện <algorithm> gồm rất nhiều hàm khác nhau, trong khuôn khổ tài liệu này không thể nêu hết được, xin giới thiệu sơ lược một số nhóm hàm sau:

- Nhóm các hàm không thay đổi container - Nhóm các hàm thay đổi container - Nhóm các hàm sắp xếp

- Nhóm các hàm trên danh sách được sắp xếp - Nhóm các làm trên heap

- Nhóm các hàm tìm min/max

Một phần của tài liệu Tổng quan về STL C++ (Trang 58)