Skip to main content

Các thuật toán cơ bản

Thuật toán

Trong khoa học máy tính, thuật toán là một tập hợp các hướng dẫn hoặc quy trình được sử dụng để giải quyết một vấn đề tính toán. Dưới đây là một số thuật toán cơ bản:

  1. Thuật toán sắp xếp: Là thuật toán sắp xếp các phần tử trong một danh sách hoặc mảng theo một thứ tự nhất định, ví dụ như sắp xếp theo thứ tự tăng dần hoặc giảm dần.
  2. Thuật toán tìm kiếm: Là thuật toán tìm kiếm một phần tử hoặc một tập hợp các phần tử trong một danh sách hoặc mảng.
  3. Thuật toán đệ quy: Là thuật toán sử dụng một hàm để gọi lại chính nó để giải quyết một vấn đề.
  4. Thuật toán cây: Là thuật toán sử dụng cấu trúc dữ liệu cây để giải quyết một vấn đề.
  5. Thuật toán đồ thị: Là thuật toán sử dụng cấu trúc dữ liệu đồ thị để giải quyết một vấn đề.

ML-06.png

Các thuật toán này là những thuật toán cơ bản và được sử dụng rộng rãi trong lĩnh vực khoa học máy tính. Việc hiểu và biết cách sử dụng chúng sẽ giúp ích rất nhiều trong quá trình giải quyết các vấn đề tính toán.

Các thuật toán sắp xếp
  1. Sắp xếp nổi bọt (Bubble sort): Sắp xếp bằng cách so sánh hai phần tử liền kề và đổi chỗ chúng nếu chúng không đúng thứ tự.
  2. Sắp xếp chọn (Selection sort): Sắp xếp bằng cách lựa chọn phần tử nhỏ nhất và đưa nó về đầu danh sách, tiếp tục với danh sách còn lại.
  3. Sắp xếp chèn (Insertion sort): Sắp xếp bằng cách chèn mỗi phần tử vào vị trí đúng của nó trong danh sách đã sắp xếp trước đó.
  4. Sắp xếp nhanh (Quick sort): Sắp xếp bằng cách chọn một phần tử làm chốt, chia danh sách thành hai phần dựa trên phần tử chốt đó, và tiếp tục sắp xếp các phần tử con.
  5. Sắp xếp trộn (Merge sort): Sắp xếp bằng cách chia danh sách thành nhiều phần, sắp xếp từng phần, sau đó trộn các phần đã sắp xếp lại với nhau.
Các thuật toán tìm kiếm
  1. Tìm kiếm tuyến tính (Linear search): Tìm kiếm bằng cách so sánh từng phần tử trong danh sách với giá trị cần tìm kiếm.
  2. Tìm kiếm nhị phân (Binary search): Tìm kiếm bằng cách chia đôi danh sách và so sánh giá trị cần tìm kiếm với giá trị ở giữa danh sách đã chia đôi.
Các thuật toán đệ quy
  1. Thuật toán đệ quy tuyến tính (Linear recursive algorithm): Giải quyết bài toán bằng cách giải bài toán con của nó và trở về bài toán ban đầu.
  2. Thuật toán đệ quy nhị phân (Binary recursive algorithm): Giải quyết bài toán bằng cách chia đôi bài toán thành những bài toán con nhỏ hơn và giải quyết chúng.
Các thuật toán cây
  1. Cây nhị phân tìm kiếm (Binary search tree): Một cây nhị phân tìm kiếm là một cây nhị phân mà ở mỗi nút, các nút con bên trái có giá trị nhỏ hơn nút hiện tại và các nút con bên phải có giá trị lớn hơn nút hiện tại.
  2. Cây đỏ đen (Red-black tree): Một cây đỏ đen là một cây nhị phân tìm kiếm được cân bằng với một số quy tắc đặc biệt, điều này đảm bảo rằng thời gian truy cập và thêm, xóa các phần tử là O(log n).
  3. Cây AVL (AVL tree): Một cây AVL là một cây nhị phân tìm kiếm được cân bằng với một số quy tắc đặc biệt, điều này đảm bảo rằng thời gian truy cập và thêm, xóa các phần tử là O(log n).
Các thuật toán đồ thị
  1. Thuật toán Dijkstra: Tìm đường đi ngắn nhất trong đồ thị có trọng số không âm.
  2. Thuật toán Bellman-Ford: Tìm đường đi ngắn nhất trong đồ thị có thể có trọng số âm.
  3. Thuật toán Floyd-Warshall: Tìm đường đi ngắn nhất giữa tất cả các cặp đỉnh trong đồ thị có trọng số.
  4. Thuật toán Prim: Tìm cây khung nhỏ nhất trong đồ thị có trọng số.
  5. Thuật toán Kruskal: Tìm cây khung nhỏ nhất trong đồ thị có trọng số.