This project is designed to help you understand and apply the basic principles of data structures and algorithms.It also provides an opportunity to learn how we can apply these principles to real world scenarios.My project includes a set of useful functions that implement various data structures and algorithms.
This project provides an opportunity to combine theoretical knowledge of data structures and algorithms with practical applications. With our project, users can experience data structures and algorithms with concrete examples. Our project also aims to raise interest in data structures and algorithms.
git clone https://github.com/EmrahFidan/algorithms_dataStructures
Some of the key features of this project include the following:
-
Data structures used: Array, List, Queue, Stack, Tree, Graph Theory
-
Algorithms used: Sorting algorithms (e.g. Bubble Sort, Fast Sort), Search algorithms (e.g. Depth Priority Search)
-
Clean code: The project has paid particular attention to writing clean and readable code. The code has been developed with comprehensibility and maintainability in mind.
-
Learning Code (LC): This project has been designed as a resource for those who want to learn the software development process. The code examples and instructions used in the project are designed to support your learning process.
-
Sorting algorithms and search methods: The project focuses on data processing topics such as sorting algorithms and search methods. More details and examples of the sorting algorithms and search methods used in the project can be found in this section.
-
Data Structures: This section can be used to provide information about the data structures used in the project. Data structures may be one of the key components of the project and more details about these structures may be provided under this heading.
-
Udemy Course Tracks: During the development of this project, the Udemy course "Python from Zero to Advanced" was used. You can access the course here.
During this process I came across some common mistakes and it was very important for me to learn how to fix them:
Error: Infinite loops: I realised that some algorithms can go into infinite loops, so I learned to check the loop conditions carefully to avoid such errors.
Bug: Memory overflows: I encountered memory overflow errors during data structure operations. To avoid these problems, I learned dynamic memory management and how to check index boundaries.
Bug: Wrong algorithm selection: I made mistakes in choosing data structures and algorithms, sometimes not realising that a more efficient algorithm should be used. Learning from these mistakes has improved my understanding of which algorithm is better in which scenario.
Mistakes: Data structure design: I made poor design choices when creating data structures, and made them difficult to use. I corrected these mistakes by learning to design simpler and more efficient data structures.
# | File Name | Apps |
---|---|---|
01 | Job Application | Compnays - CV - Job Variables - Searching Job |
02 | Code Complexity | Big O Notation - Omega_ Theta |
03 | Array | Dynamic Array - Word Split |
04 | Stacks - Queues - Deques | List Reverse - Reverse String |
05 | Linked List | Double Linked List - Order |
06 | Recursion | Exponents - Multiple - Reverse String |
07 | Searching Algorithms | Binary Search - Hashing_HashTable - Jump Search |
08 | Sorting Algorithms | Bubble - Counting - Heap - Insertion - Merge - Quick - Selection - Shell |
09 | Trees | Binary Tree - BST - Key_search |
10 | Graph Theory | Adjacency - BFS - DFS - |
11 | Dynamic Programming | Fibonacci - Catalan Numbers |
12 | Business Interview Examples | Google - Facebook - Amozon examples of interview algorithms |
If you have any feedback, please contact us at emrahfdn.work@gmail.com.