Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hoangtien2k3/data-structure-and-algorithm

Data Structure and Algorithms such as Array, Pointer, Structure, Linked List, Stack, Queue, Graph, Searching, Sorting, Programs, etc.
https://github.com/hoangtien2k3/data-structure-and-algorithm

algorithm algorithms data-structures java sorting-algorithms

Last synced: 6 days ago
JSON representation

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

Awesome Lists containing this project

README

        

## 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](/CONTRIBUTING.md) Guide Before Contribution.

## Contributing

Before submitting a bug, please do the following:
Check [Contribution](/CONTRIBUTING.md) 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](https://github.com/hoangtien2k3qx1/Data-Structure-And-Algorithm/assets/122768076/3a4d01e0-7063-40dd-a905-2d936f6d8205)

![image2](https://github.com/hoangtien2k3qx1/Data-Structure-And-Algorithm/assets/122768076/c278b651-f7e3-465b-971e-a9def0e3341f)

```text
## 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
```