An open API service indexing awesome lists of open source software.

https://github.com/asungur/data_structures_and_algos

Go,Ruby and Python implementations of common algorithms and data structures
https://github.com/asungur/data_structures_and_algos

algorithm algorithms data-structures go golang interview interview-preparation ruby

Last synced: 5 months ago
JSON representation

Go,Ruby and Python implementations of common algorithms and data structures

Awesome Lists containing this project

README

          

# ➗Data Structures and Algorithms

This repository contains my solutions to popular algorithms and data structures.

My plan is to implement each solution in **Go** and **Ruby.** However, some problems might only have one implementation.

Some problems include variations. These are kept in the same folder.

## Algorithms

[Definition](https://en.wikipedia.org/wiki/Algorithm)

Set of rules to solve a given problem. Commonly, they work hand in hand with data structures.

- [Binary Search](https://github.com/asungur/data_structures_and_algos/tree/main/algorithms/binary_search) | [wiki](https://en.wikipedia.org/wiki/Binary_search_algorithm)
- [Bubble Sort](https://github.com/asungur/data_structures_and_algos/tree/main/algorithms/bubble_sort) | [wiki](https://en.wikipedia.org/wiki/Bubble_sort)
- [Merge Sort](https://github.com/asungur/data_structures_and_algos/tree/main/algorithms/merge_sort) | [wiki](https://en.wikipedia.org/wiki/Merge_sort)
- [Selection Sort](https://github.com/asungur/data_structures_and_algos/tree/main/algorithms/selection_sort) | [wiki](https://en.wikipedia.org/wiki/Selection_sort)
- [Insertion Sort](https://github.com/asungur/data_structures_and_algos/tree/main/algorithms/insertion_sort) | [wiki](https://en.wikipedia.org/wiki/Insertion_sort)
- [Quicksort](https://github.com/asungur/data_structures_and_algos/tree/main/algorithms/quicksort) | [wiki](https://en.wikipedia.org/wiki/Quicksort)
- [Quickselect](https://github.com/asungur/data_structures_and_algos/tree/main/algorithms/quickselect) | [wiki](https://en.wikipedia.org/wiki/Quickselect)

## Data Structures

[Definition](https://en.wikipedia.org/wiki/Data_structure)

Depending on the actual problem, using different data structures bring efficiency (speed/memory) to our solution. Understanding their trade-offs and where to use them is as important as understanding how they work.

- [Linked list](https://github.com/asungur/data_structures_and_algos/tree/main/data_structures/linked_list) | [wiki](https://en.wikipedia.org/wiki/Linked_list)
- [Doubly linked list](https://github.com/asungur/data_structures_and_algos/tree/main/data_structures/doubly_linked_list) | [wiki](https://en.wikipedia.org/wiki/Doubly_linked_list)
- [Queue](https://github.com/asungur/data_structures_and_algos/tree/main/data_structures/queue) | [wiki](https://en.wikipedia.org/wiki/Queue_(abstract_data_type))
- [Stack](https://github.com/asungur/data_structures_and_algos/tree/main/data_structures/stack) | [wiki](https://en.wikipedia.org/wiki/Stack_(abstract_data_type))
- [Binary Search Tree](https://github.com/asungur/data_structures_and_algos/tree/main/data_structures/binary_search_tree) | [wiki](https://en.wikipedia.org/wiki/Binary_search_tree)
- [Hash Table](https://github.com/asungur/data_structures_and_algos/tree/main/data_structures/hash_table) | [wiki](https://en.wikipedia.org/wiki/Hash_table) - WIP: implement linked-list collision handling for both