Algorithm

Thuật toán là một khái niệm cơ sở của Toán học và Tin học. Hiểu một cách đơn giản, thuật toán là một tập các hướng dẫn nhằm thực hiện một công việc nào đó. Ðối với việc giải quyết một vấn đề - bài toán thì thuật toán có thể hiểu là một tập hữu hạn các hướng dẫn rõ ràng để người giải toán có thể theo đó mà giải quyết được vấn đề. Như vậy, thuật toán là một phương pháp thể hiện lời giải của vấn đề - bài toán.

Từ lâu các thuật toán đã được sử dụng rất hiệu quả trong nhiều lĩnh vực. Tuy nhiên không phải ai học lập trình cũng biết một trong những công cụ rất thú vị này. Có thể bạn không biết, các thuật toán được ứng dụng vào rất nhiều nơi, nhiều lĩnh vực, từ bộ máy tìm kiếm của Google, các mạng xã hội, quy hoạch mạng, giao thông, robot vv nói chung là rất nhiều.

Loạt bài này mình sẽ lần lượt giới thiệu các thuật toán cơ bản nhất, cũng như các loại thuật toán sử dụng cho từng lĩnh vực cụ thể, có thể được sử dụng nhiều trong lập trình, lập trình nhúng. Trong quá trình viết, mình sẽ tập trung vào cách xây dựng thuật toán, phân tích hoạt động và khả năng ứng dụng của các thuật toán thông qua các bài toán cụ thể. Các bài viết dựa trên hiểu biết của nhóm, theo tinh thần vừa học vừa chia sẻ, nên chỉ mô tả được một phần nhỏ của vấn đề, không trái khỏi sai sót. Một số bài toàn thực tế có thể xảy ra trong quá trình làm việc, nếu có tính ứng dụng cao, các bạn có thể gởi mail cho nhóm mình để cùng phân tích, tìm giải pháp. Hy vọng mục mới này sẽ hữu ích, tạo cảm hứng sáng tạo cho các bạn.

Dưới đây là các chủ đề chính sẽ được giới thiệu, có thể thay đổi, bổ xung sau này cho phù hợp. Mình cũng sẽ giới thiệu đan xen các thuật toán theo trình tự từ đơn giản đến phức tạp, từ cơ bản đến nâng cao. Thường thì các thuật toán cơ bản nhóm mình sẽ chỉ giới thiệu sơ qua về lý thuyết, cụ thể các bạn có thể tìm hiểu qua google.

Trước khi bắt đầu, các bạn nên đọc qua một bài mẫu để biết cấu trúc một bài viết và các bước chuẩn bị cần thiết  Algorithm Sample Project
  1. Thuật toán vét cạn ( Exhaustive )
  2. Cấu trúc dữ liệu ( Data Structure )
    1. Array
    2. Adjacency Matrix
    3. Linked List
    4. Stack
      1. Captcha1
  3. Các thuật toán sắp xếp ( Sort )
    1. Bubble Sort
    2. Selection Sort
    3. Quick Sort
  4. Các thuật toán tìm kiếm ( Searching )
    1. BFS
    2. DFS
  5. Quy hoạch động ( Dynamic )
    1. Bài toán ATM
  6. Các thuật toán trên đồ thị ( Graph )
    1. Dijkstra
    2. Luồng cực đại
    3. Bài toán bộ ghép cực đại trên đồ thị hai phía
Trang này giống như Menu của mục "Algorithm" sẽ thường xuyên được cập nhật, thêm các phần mới

No comments:

Post a Comment

END COMMENT FACEBOOK-->