https://github.com/diable201/algorithms_and_data_structures
Algorithms and Data Structures course at KBTU FALL 2020
https://github.com/diable201/algorithms_and_data_structures
acm-icpc algorithms algorithms-datastructures programming
Last synced: 17 days ago
JSON representation
Algorithms and Data Structures course at KBTU FALL 2020
- Host: GitHub
- URL: https://github.com/diable201/algorithms_and_data_structures
- Owner: diable201
- License: mit
- Created: 2020-09-05T10:01:33.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-10-31T20:04:10.000Z (about 4 years ago)
- Last Synced: 2025-01-17T19:55:23.044Z (10 months ago)
- Topics: acm-icpc, algorithms, algorithms-datastructures, programming
- Language: C++
- Homepage:
- Size: 1.2 MB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Algorithms and Data Structures
## Introduction To Algorithms
An algorithm is a specific procedure for solving a well-defined computational problem. The development and analysis of algorithms is fundamental to all aspects of computer science: artificial intelligence, databases, graphics, networking, operating systems, security, and so on. Algorithm development is more than just programming.
## About This Repository
This repository contains all the code for the course "Algorithms and Data Structures" in the fall semester 2020 year in KBTU. This repository includes both the code from the lectures and the codes of labs and contests.
## Lectures
[Week 01 - **Data Structures**](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/week_01)
[Week 02 - **Linked List**](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/week_02)
[Week 03 - **Binary Search**](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/week_03)
[Week 05 - **BST**](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/week_05)
[Week 06 - **Heap**](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/week_06)
[Week 07 - **QuickSort, MergeSort**](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/week_07)
[Week 09 - **Hash**](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/week_09)
[Week 10 - **RabinKarp, KMP**](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/week_10)
[Week 11 - **Trie**](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/week_11)
[Week 13 - **Graphs**](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/week_13)
[Week 15 - **Bellman Ford, Dijkstra algorithm**](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/week_15)
## Laboratory Works
[Laboratory work 1](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/informatics_1) - **Stack, Deque, Queue**
[Laboratory work 2](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/informatics_2) - **Linear Search, Binary Search**
[Laboratory work 3](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/informatics_3) - **Binary Tree. Binary Search Tree (BST).**
[Laboratory work 4](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/informatics_4) - **Heap, HeapSort**
[Laboratory work 5](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/informatics_5) - **Hashes, Rabin-Karp algo and KMP**
[Laboratory work 6](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/informatics_6) - **Trie**
[Laboratory work 7](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/informatics_7) - **Graphs. DFS, BFS, Topological Sort**
## Contests
[Contest 01 - **STL, Binary Search Algorithm**](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/week_04(quiz_1))
[Contest 02 - **Sorting Algorthms**](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/week_08(quiz_2))
[Contest 03 - **String Algorithms**](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/week_12(quiz_3))
[Contest 04 - **Graphs Algrorithms**](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/week_14(quiz_4))
[Contest 05 - **Final Exam**](https://github.com/diable201/Algorithms_and_Data_Structures/tree/master/FinalExam)
## Useful Notes
### Big O Notation
*Big O notation* is used to classify algorithms according to how their running time or space requirements grow as the input size grows.
On the chart below you may find most common orders of growth of algorithms specified in Big O notation.
| Big O Notation | Computations for 10 elements | Computations for 100 elements | Computations for 1000 elements |
| -------------- | ---------------------------- | ----------------------------- | ------------------------------ |
| **O(1)** | 1 | 1 | 1 |
| **O(log N)** | 3 | 6 | 9 |
| **O(N)** | 10 | 100 | 1000 |
| **O(N log N)** | 30 | 600 | 9000 |
| **O(N^2)** | 100 | 10000 | 1000000 |
| **O(2^N)** | 1024 | 1.26e+29 | 1.07e+301 |
| **O(N!)** | 3628800 | 9.3e+157 | 4.02e+2567 |
## Useful Links
[**Emaxx**](https://e-maxx.ru/algo/)
[**Codeforces**](https://codeforces.com/)
[**Informatics**](https://informatics.mccme.ru/)
[**LeetCode**](https://leetcode.com/)
[**ITMO Conspects**](http://neerc.ifmo.ru/wiki/)
[**Algorithmica**](https://algorithmica.org/ru/)
## License
This repository is released under the [MIT license](LICENSE.md). In short, this means you are free to use this software in any personal, open-source or commercial projects. Attribution is optional but appreciated.