Skip to content

I'm working on Data Structures and Algorithms I C949 class in school and decided to write up all of these searching algorithms, sorting algorithms, strutures, and so on to get a better understanding. These can be used with large datasets to test their space and time complexities.

License

Notifications You must be signed in to change notification settings

IAmJuniorB/Data_Structures_and_Algorithms

Repository files navigation

Data Structures and Algorithms in Python

This repository contains implementations of various data structures and algorithms in Python. The code is organized into four main categories: Data Structures, Search Algorithms, Sorting Algorithms, and Graph Algorithms.

Structure

ROOT
│
├── DATA STRUCTURES
│   ├── arrays.py
│   ├── avl_tree.py
│   ├── binary_search_tree.py
│   ├── b_tree.py
│   ├── binary_heap.py
│   ├── cartesian_tree.py
│   ├── doubly_linked_list.py
│   ├── fibonacci_heap.py
│   ├── hash_tables.py
│   ├── kd_tree.py
│   ├── priority_queue.py
│   ├── queue.py
│   ├── red_black_tree.py
│   ├── singly_linked_list.py
│   ├── skip_list.py
│   ├── stack.py
│   └── trie.py
│
├── SEARCH ALGORITHMS
│   ├── a_star_search.py
│   ├── binary_search.py
│   ├── boyer_moore_string_search.py
│   ├── breadth_first_search.py
│   ├── depth_first_search.py
│   ├── fibonacci_search.py
│   ├── floyd_cycle_detection.py
│   ├── interpolation_search.py
│   ├── jump_search.py
│   ├── knuth_morris_pratt_search.py
│   ├── linear_search.py
│   ├── manacher_algorithm.py
│   ├── rabin_karp_search.py
│   ├── recursive_binary_search.py
│   ├── suffix_array_search.py
│   ├── ternary_search.py
│   └── z_algorithm.py
│
├── SORTING ALGORITHMS
│   ├── bogo_sort.py
│   ├── bubble_sort.py
│   ├── bucket_sort.py
│   ├── cocktail_sort.py
│   ├── comb_sort.py
│   ├── counting_sort.py
│   ├── cube_sort.py
│   ├── heap_sort.py
│   ├── insertion_sort.py
│   ├── linked_list_merge_sort.py
│   ├── merge_sort.py
│   ├── quicksort.py
│   ├── radix_sort.py
│   ├── selection_sort.py
│   ├── shell_sort.py
│   ├── timsort.py
│   └── tree_sort.py
│
├── GRAPH ALGORITHMS
│   ├── articulation_points.py
│   ├── bellman_ford_algorithm.py
│   ├── dijkstra's_algorithm.py
│   ├── edmonds-karp_algorithm.py
│   ├── floyd_warshall_algorithm.py
│   ├── kosaraju's_algorithm.py
│   ├── kruskal's_algorithm.py
│   ├── maximum_bipartite_matching.py
│   ├── prim's_algorithm.py
│   └── topological_sort.py
│
├── Dynamic Programming
│   ├── coin_change.py
│   ├── edit_distance.py
│   ├── fibonacci_sequence.py
│   ├── knapsack_01.py
│   ├── longest_common_subsequence.py
│   ├── maximum_subarrray.py
│
└── UTILITIES
    ├── load.py
    └── recursion.py

Usage

I'm personally using it to better understand data structures and algorithms. Will probably use large datasets to compare and contrast.

Feel free to contribute by adding new algorithms or fixing any mistakes I have made. Please ensure that your code follows the existing structure and includes appropriate documentation and test cases. If you can't tell, I LOVE documentation.

License

This project is open source and available under the MIT License.

About

I'm working on Data Structures and Algorithms I C949 class in school and decided to write up all of these searching algorithms, sorting algorithms, strutures, and so on to get a better understanding. These can be used with large datasets to test their space and time complexities.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages