• Giải thuật tìm kiếm theo chiều sâu

    Giải thuật tìm kiếm theo chiều sâu
    Giải thuật tìm kiếm theo chiều sâu (Depth First Search – viết tắt là DFS), còn được gọi là giải thuật tìm kiếm ưu tiên chiều sâu, là giải thuật duyệt hoặc tìm kiếm trên một cây hoặc một đồ thị và sử dụng stack (ngăn xếp) để ghi nhớ đỉnh liền kề để bắt đầu việc tìm kiếm khi không gặp được đỉnh liền kề trong bất kỳ vòng lặp nào.
  • Cấu trúc dữ liệu đồ thị (Graph)

    Cấu trúc dữ liệu đồ thị (Graph)
    Một đồ thị (đồ thị) là một dạng biểu diễn hình ảnh của một tập các đối tượng, trong đó các cặp đối tượng được kết nối bởi các link. Các đối tượng được nối liền nhau được biểu diễn bởi các điểm được gọi là các đỉnh (vertices), và các link mà kết nối các đỉnh với nhau được gọi là các cạnh (edges).
  • Giải thuật sắp xếp nhanh (Quick Sort)

    Giải thuật sắp xếp nhanh (Quick Sort)
    Giải thuật sắp xếp nhanh (Quick Sort) là một giải thuật hiệu quả cao và dựa trên việc chia mảng dữa liệu thành các mảng nhỏ hơn.
  • Shell Sort trong cấu trúc dữ liệu và giải thuật

    Shell Sort trong cấu trúc dữ liệu và giải thuật
    Shell Sort là một giải thuật sắp xếp mang lại hiệu quả cao dựa trên giải thuật sắp xếp chèn (Insertion Sort). Giải thuật này tránh các trường hợp phải tráo đổi vị trí của hai phần tử xa nhau trong giải thuật sắp xếp chọn (nếu như phần tử nhỏ hơn ở vị trí bên phải khá xa so với phần tử lớn hơn bên trái).
  • Giải thuật sắp xếp trộn (Merge Sort)

    Giải thuật sắp xếp trộn (Merge Sort)
    Sắp xếp trộn (Merge Sort) là một giải thuật sắp xếp dựa trên giải thuật Chia để trị (Divide and Conquer). Với độ phức tạp thời gian trường hợp xấu nhất là Ο(n log n) thì đây là một trong các giải thuật đáng được quan tâm nhất.
  • Bài toán Tháp Hà Nội (Tower of Hanoi)

    Bài toán Tháp Hà Nội (Tower of Hanoi)
    Bài toán Tháp Hà Nội (Tower of Hanoi) là một trò chơi toán học bao gồm 3 cột và với số đĩa nhiều hơn 1.
  • Khái niệm cơ bản về đệ qui (Recursion)

    Khái niệm cơ bản về đệ qui (Recursion)
    Một số ngôn ngữ lập trình cho phép việc một module hoặc một hàm được gọi tới chính nó. Kỹ thuật này được gọi là Đệ qui (Recursion).
  • Giải thuật sắp xếp chọn (Selection Sort)

    Giải thuật sắp xếp chọn (Selection Sort)
    Giải thuật sắp xếp chọn (Selection Sort) là một giải thuật đơn giản. Giải thuật sắp xếp này là một giải thuật dựa trên việc so sánh in-place, trong đó danh sách được chia thành hai phần, phần được sắp xếp (sorted list) ở bên trái và phần chưa được sắp xếp (unsorted list) ở bên phải. Ban đầu, phần được sắp xếp là trống và phần chưa được sắp xếp là toàn bộ danh sách ban đầu.
  • Cấu trúc dữ liệu Heap

    Cấu trúc dữ liệu Heap
    Cấu trúc dữ liệu Heap là một trường hợp đặc biệt của cấu trúc dữ liệu cây nhị phân cân bằng, trong đó khóa của nút gốc được so sánh với các con của nó và được sắp xếp một cách phù hợp.
  • Cây khung (Spanning Tree) trong cấu trúc dữ liệu và giải thuật

    Cây khung (Spanning Tree) trong cấu trúc dữ liệu và giải thuật
    Một cây khung là một tập con của Grahp G mà có tất cả các đỉnh được bao bởi số cạnh tối thiểu nhất. Vì thế, một cây khung sẽ không hình thành một vòng tuần hoàn và nó cũng không thể bị ngắt giữa chừng.
  • Cây AVL trong cấu trúc dữ liệu và giải thuật

    Cây AVL trong cấu trúc dữ liệu và giải thuật
    Điều gì xảy ra nếu dữ liệu nhập vào cây tìm kiếm nhị phân (BST) là ở dạng đã được sắp thứ tự (tăng dần hoặc giảm dần). Nó sẽ trông giống như sau.
  • Giải thuật sắp xếp chèn (Insertion Sort)

    Giải thuật sắp xếp chèn (Insertion Sort)
    Sắp xếp chèn là một giải thuật sắp xếp dựa trên so sánh in-place. Ở đây, một danh sách con luôn luôn được duy trì dưới dạng đã qua sắp xếp. Sắp xếp chèn là chèn thêm một phần tử vào danh sách con đã qua sắp xếp. Phần tử được chèn vào vị trí thích hợp sao cho vẫn đảm bảo rằng danh sách con đó vẫn sắp theo thứ tự.
  • Giải thuật sắp xếp nổi bọt (Bubble Sort)

    Giải thuật sắp xếp nổi bọt (Bubble Sort)
    Sắp xếp nổi bọt là một giải thuật sắp xếp đơn giản. Giải thuật sắp xếp này được tiến hành dựa trên việc so sánh cặp phần tử liền kề nhau và tráo đổi thứ tự nếu chúng không theo thứ tự.
  • Giải thuật sắp xếp trong cấu trúc dữ liệu & giải thuật

    Giải thuật sắp xếp trong cấu trúc dữ liệu & giải thuật
    Sắp xếp là sắp xếp dữ liệu theo một định dạng cụ thể. Trong khoa học máy tính, giải thuật sắp xếp xác định cách để sắp xếp dữ liệu theo một thứ tự nào đó. Sắp xếp theo thứ tự ở đây là sắp xếp theo thứ tự dạng số hoặc thứ tự dạng chữ cái như trong từ điển.
  • Cấu trúc dữ liệu Hash Table

    Cấu trúc dữ liệu Hash Table
    Cấu trúc dữ liệu Hash Table là một cấu trúc dữ liệu lưu giữ dữ liệu theo cách thức liên hợp. Trong Hash Table, dữ liệu được lưu giữ trong định dạng mảng, trong đó các giá trị dữ liệu có giá trị chỉ mục riêng. Việc truy cập dữ liệu trở nên nhanh hơn nếu chúng ta biết chỉ mục của dữ liệu cần tìm.
  • Giải thuật Tìm kiếm nội suy (Interpolation Search)

    Giải thuật Tìm kiếm nội suy (Interpolation Search)
    Tìm kiếm nội suy (Interpolation Search) là biến thể cải tiến của Tìm kiếm nhị phân (Binary Search). Để giải thuật tìm kiếm này làm việc chính xác thì tập dữ liệu phải được sắp xếp.
  • Giải thuật tìm kiếm nhị phân (Binary Search)

    Giải thuật tìm kiếm nhị phân (Binary Search)
    Binany Search (Tìm kiếm nhị phân) là một giải thuật tìm kiếm nhanh với độ phức tạp thời gian chạy là Ο(log n). Giải thuật tìm kiếm nhị phân làm việc dựa trên nguyên tắc chia để trị (Divide and Conquer). Để giải thuật này có thể làm việc một cách chính xác thì tập dữ liệu nên ở trong dạng đã được sắp xếp.
  • Giải thuật tìm kiếm tuyến tính (Linear Search)

    Giải thuật tìm kiếm tuyến tính (Linear Search)
    Linear Search là một giải thuật tìm kiếm rất cơ bản. Trong kiểu tìm kiếm này, một hoạt động tìm kiếm liên tiếp được diễn ra qua tất cả từng phần tử. Mỗi phần tử đều được kiểm tra và nếu tìm thấy bất kỳ kết nối nào thì phần tử cụ thể đó được trả về; nếu không tìm thấy thì quá trình tìm kiếm tiếp tục diễn ra cho tới khi tìm kiếm hết dữ liệu.
  • Cấu trúc dữ liệu hàng đợi (Queue)

    Cấu trúc dữ liệu hàng đợi (Queue)
    Hàng đợi (Queue) là một cấu trúc dữ liệu trừu tượng, là một cái gì đó tương tự như hàng đợi trong đời sống hàng ngày (xếp hàng).
  • Cấu trúc dữ liệu ngăn xếp (Stack)

    Cấu trúc dữ liệu ngăn xếp (Stack)
    Một ngăn xếp là một cấu trúc dữ liệu trừu tượng (Abstract Data Type – viết tắt là ADT), hầu như được sử dụng trong hầu hết mọi ngôn ngữ lập trình. Đặt tên là ngăn xếp bởi vì nó hoạt động như một ngăn xếp trong đời sống thực, ví dụ như một cỗ bài hay một chồng đĩa...