rust-algorithm-club
rust-algorithm-club copied to clipboard
Learn algorithms and data structures with Rust
Rust Algorithm Club
🚧 🚧 This repo is under construction. Most materials are written in Chinese. Check it out here if you are able to read Chinese.
Welcome to the Rust Algorithm Club! This repository was originally inspired by Swift Algorithm Club. All algorithms here would be explained and implemented in Rust programming language! You can find out more on the Rust Algorithm Club main site. Just pick up some algorithms you are interested in and start learning. If you are brave enough, we recommend you the auto-generated API documentation. Go and fight with the source code.
This project along with its source code are on GitHub and we are looking forward to your contributions.
General Concepts
- Asymptotic Notation
Algorithms
Searching
- Linear search
- Binary search
- Interpolation search
- Exponential search
Sorting
Simple sorts:
- Insertion sort
- Selection sort
- Bubble sort
- Shellsort
Efficient sorts:
- Heapsort
- Quicksort
- Mergesort
Hybrid sorts (more efficient):
- 🚧 Introsort
- 🚧 Timsort
- 🚧 Pdqsort
Special-purpose sorts:
- Counting sort
- Bucket sort
- Radix sort
Data Structures
Stack and Queue
- Stack
- Queue
- Deque
Linked List
Introduction to linked list
- Singly linked list
- 🚧 Doubly linked list
- 🚧 Circular linked list
Associative Container
Introduction to associative container
- Hash map
- 🚧 Ordered map
- 🚧 Multimap
- Set
- Bloom filter
String Manipulation
- Hamming distance
- Levenshtein distance
- 🚧 Longest common substring
Learning Resources
For learning more, you may check out following online resources:
- VisuAlgo - Probably the best algorithms visualization website.
- Big-O Cheat Sheet - Comprehensive Big-O notation cheat sheet.
- Rosetta Code - Hundred of solutions of tasks in almost every programming languages.
- Competitive Programmer's Handbook - Make you more competitive. The book itself is also competitive.
Contributing
All contributions are welcome, including typo fix! Please read the contrubuting guideline first before starting your work.
Contributors
License
This project is released under different licenses based on type of the content.
- Source code is licensed under The MIT License (MIT).
- Articles and creative works are licensed under Creative Commons 4.0 (CC BY-NC-SA 4.0).
Copyright © 2017 - 2021 Weihang Lo