Skip to content

Data Structure and Algorithms such as Array, Pointer, Structure, Linked List, Stack, Queue, Graph, Searching, Sorting, Programs, etc.

License

Notifications You must be signed in to change notification settings

hoangtien2k3/Data-Structure-And-Algorithm

Repository files navigation

Algorithms

An algorithm is a set of instructions that are used to accomplish a task, such as finding the largest number in a list, removing all the red cards from a deck of playing cards, sorting a collection of names, or figuring out an average movie rating from just your friends' opinions.

Algorithms are not limited to computers. They are like a set of step-by-step instructions or an even a recipe, containing things you need, steps to do, the order to do them, conditions to look for, and expected results.

Languages

  • C
  • C++
  • Java

Support

Check Contribution Guide Before Contribution.

Contributing

Before submitting a bug, please do the following: Check Contribution Guide Before Contribution.

  • Create separate issues for Python and C++.
  • You can only work on issues that you have been assigned to.
  • Use Flake8 locally for linting Python Code. pip install flake8. (We have linting checks so if your code fails it we will not merge the PR.)

Search

image1

image2

## Cấu trúc dữ liệu và giải thuật
  - Mở đầu
  - Cấu trúc dữ liệu là gì ?
  - Cài đặt môi trường trong Cấu trúc dữ liệu

## Một số khái niệm về Giải thuật
  - Giải thuật là gì ?
  - Phân tích tiệm cận trong Cấu trúc dữ liệu và Giải thuật
  - Giải thuật tham lam (Greedy Algorithm)
  - Giải thuật chia để trị (divide and conquer)
  - Giải thuật qui hoạch động (Dynamic Programming)
  - Giải thuật định lý thợ - Master Theorem
  
## Cấu trúc dữ liệu mảng (Array)
  - Cấu trúc dữ liệu mảng
  
## Danh sách liên kết - Linked Lists
  - Cấu trúc dữ liệu danh sách liên kết (Linked List)
  - Cấu trúc dữ liệu và giải thuật Danh sách liên kết đôi
  - Cấu trúc dữ liệu Danh sách liên kết vòng (Circular Linked List)
  
## Ngăn xếp & Hàng đợi
  - Cấu trúc dữ liệu ngăn xếp (Stack)
  - Cấu trúc dữ liệu hàng đợi (Queue)

## Một số Giải thuật tìm kiếm
  - Giải thuật tìm kiếm tuyến tính (Linear Search)
  - Giải thuật tìm kiếm nhị phân (Binary Search)
  - Giải thuật Tìm kiếm nội suy (Interpolation Search)
  - Cấu trúc dữ liệu Hash Table

## Một số Giải thuật sắp xếp
  - 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 nổi bọt (Bubble Sort)
  - Giải thuật sắp xếp chèn (Insertion Sort)
  - Giải thuật sắp xếp chọn (Selection Sort)
  - Giải thuật sắp xếp trộn (Merge Sort)
  - Shell Sort trong cấu trúc dữ liệu và giải thuật
  - Giải thuật sắp xếp nhanh (Quick Sort)
  - Thuật toán quay lui (Back-tracking algorithm)

## Cấu trúc dữ liệu đồ thị (Graph)
  - Cấu trúc dữ liệu đồ thị (Graph)
  - Giải thuật tìm kiếm theo chiều sâu
  - Giải thuật tìm kiếm theo chiều rộng

## Cấu trúc dữ liệu cây
  - Cấu trúc dữ liệu cây
  - Duyệt cây trong cấu trúc dữ liệu và giải thuật
  - Cây tìm kiếm nhị phân (Binary Search Tree)
  - Cây AVL trong cấu trúc dữ liệu và giải thuật
  - Cây SPLAY 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
  - Cấu trúc dữ liệu Heap
  - Giải thuật Kruskal: tìm cây khung nhỏ nhất
  - Giải thuật Prim: tìm cây khung nhỏ nhất

## Đệ qui (Recursion)
  - Khái niệm cơ bản về đệ qui (Recursion)
  - Bài toán Tháp Hà Nội (Tower of Hanoi)
  - Dãy Fibonacci trong Cấu trúc dữ liệu và giải thuật

About

Data Structure and Algorithms such as Array, Pointer, Structure, Linked List, Stack, Queue, Graph, Searching, Sorting, Programs, etc.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published