🗂️ Data Structures and Algorithms


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.

Installation of the project


git clone https://github.com/EmrahFidan/algorithms_dataStructures

Features

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.

Lessons Learned

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.

Files

# 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

Feedback

If you have any feedback, please contact us at emrahfdn.work@gmail.com.