All Projects → joaomh → python-data-structures-and-algorithms

joaomh / python-data-structures-and-algorithms

Licence: MIT license
No description or website provided.

Programming Languages

Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to python-data-structures-and-algorithms

CC33Z
Curso de Ciência da Computação
Stars: ✭ 50 (-12.28%)
Mutual labels:  computer-science, algorithms-and-data-structures
DataStructures-Algorithms
A collections of many CP-based or DSA-based Questions that is stored various algorithms and datastructures to increase coding aptitutde. Anybody with a knack for coding can feel free to add more solutions and questions in the respective folders
Stars: ✭ 15 (-73.68%)
Mutual labels:  computer-science, algorithms-and-data-structures
AlgorithmsAndDataStructure
Algorithms And DataStructure Implemented In Python, Java & CPP, Give a Star 🌟If it helps you
Stars: ✭ 724 (+1170.18%)
Mutual labels:  computer-science, algorithms-and-data-structures
Interview materials
A curated list of all essential job interview preparation materials.
Stars: ✭ 27 (-52.63%)
Mutual labels:  computer-science, algorithms-and-data-structures
Harris-Hawks-Optimization-Algorithm-and-Applications
Source codes for HHO paper: Harris hawks optimization: Algorithm and applications: https://www.sciencedirect.com/science/article/pii/S0167739X18313530. In this paper, a novel population-based, nature-inspired optimization paradigm is proposed, which is called Harris Hawks Optimizer (HHO).
Stars: ✭ 31 (-45.61%)
Mutual labels:  computer-science, algorithms-and-data-structures
intro-to-java-programming
Solutions to Introduction to Java Programming by Y. Daniel Liang. 10th Edition
Stars: ✭ 91 (+59.65%)
Mutual labels:  computer-science, algorithms-and-data-structures
TheJobInterviewGuide
A job guide to help developers get through interviews and get amazing jobs!
Stars: ✭ 267 (+368.42%)
Mutual labels:  computer-science
competitive programming codebook
Programming Contest Book.
Stars: ✭ 76 (+33.33%)
Mutual labels:  algorithms-and-data-structures
Developer Roadmap
Roadmap to becoming a developer in 2021
Stars: ✭ 180,811 (+317112.28%)
Mutual labels:  computer-science
LeetCode
200 LeetCode practice problems for beginners in algorithms and data structures
Stars: ✭ 120 (+110.53%)
Mutual labels:  algorithms-and-data-structures
Javascript Algorithms
📝 Algorithms and data structures implemented in JavaScript with explanations and links to further readings
Stars: ✭ 133,406 (+233945.61%)
Mutual labels:  computer-science
shortest-path-finder
Shortest Path Finder visualizer using Breadth First Search algorithm
Stars: ✭ 195 (+242.11%)
Mutual labels:  algorithms-and-data-structures
algorithms
A open source repository of different kinds of algorithms in c. Newbies are encouraged to contribute! Note: I made this code when i didn't have as much experience in programming
Stars: ✭ 33 (-42.11%)
Mutual labels:  computer-science
wtm-udacity-scholars-nanodegree-resources
A List of Resources for Udacity Nanodegrees
Stars: ✭ 15 (-73.68%)
Mutual labels:  computer-science
Coding Interview University
A complete computer science study plan to become a software engineer.
Stars: ✭ 204,859 (+359301.75%)
Mutual labels:  computer-science
CSIndex
Transparent data about Brazilian scientific production in Computer Science
Stars: ✭ 34 (-40.35%)
Mutual labels:  computer-science
Cs Notes
📚 技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计
Stars: ✭ 143,620 (+251864.91%)
Mutual labels:  computer-science
fit3143-notes
Summary notes for my "Parallel Computing" class
Stars: ✭ 35 (-38.6%)
Mutual labels:  computer-science
AlmanaqueBrute
Repositório para códigos de competição
Stars: ✭ 22 (-61.4%)
Mutual labels:  algorithms-and-data-structures
curriculum
A roadmap for Boot.dev's CS curriculum for backend developers
Stars: ✭ 492 (+763.16%)
Mutual labels:  computer-science

Python Data Structures and Algorithms

This repository contains Python based examples of many data structures and algorithms.

This is the main reference for my YouTube Channel, 2001 Engenharia in PT-BR

Estrutura de Dados e Algoritmos em Python

Each algorithm and data structure has its own separate README with related explanations and links for further reading.

Data Structures

In computer science, a data structure is a data organization, management, and storage format that enables efficient access and modification. More precisely, a data structure is a collection of data values, the relationships among them, and the functions or operations that can be applied to the data.

Data structures are the building block for Computer Science and Software Engineering.

B - Beginner, A - Advanced

Recursion

In computer science Recursion is a technique for solving problems where the solution to a particular problem depends on the solution to a smaller instance of the same problem.

B - Beginner, A - Advanced

Algorithm

In mathematics and computer science, an algorithm is a finite sequence of well-defined, computer-implementable instructions, typically to solve a class of problems or to perform a computation. Algorithms are always unambiguous and are used as specifications for performing calculations, data processing, automated reasoning, and other tasks.

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 graphs

Source: Big O Cheat Sheet.

Below is the list of some of the most used Big O notations and their performance comparisons against different sizes of the input data.

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(n2 ) 100 10000 1000000
O(2n ) 1024 1.26e+29 1.07e+301
O(n!) 3628800 9.3e+157 4.02e+2567

Data Structure Operations Complexity

Data Structure Access Search Insertion Deletion Comments
Array 1 n n n
Stack n n 1 1
Queue n n 1 1
Linked List n n 1 n
Hash Table - n n n In case of perfect hash function costs would be O(1)
Binary Search Tree n n n n In case of balanced tree costs would be O(log(n))
B-Tree log(n) log(n) log(n) log(n)
Red-Black Tree log(n) log(n) log(n) log(n)
AVL Tree log(n) log(n) log(n) log(n)
Bloom Filter - 1 1 - False positives are possible while searching

Array Sorting Algorithms Complexity

Name Best Average Worst Memory Stable Comments
Bubble sort n n2 n2 1 Yes
Insertion sort n n2 n2 1 Yes
Selection sort n2 n2 n2 1 No
Heap sort n log(n) n log(n) n log(n) 1 No
Merge sort n log(n) n log(n) n log(n) n Yes
Quick sort n log(n) n log(n) n2 log(n) No Quicksort is usually done in-place with O(log(n)) stack space
Shell sort n log(n) depends on gap sequence n (log(n))2 1 No
Counting sort n + r n + r n + r n + r Yes r - biggest number in array
Radix sort n * k n * k n * k n + k Yes k - length of longest key

References

This project was based on

Supporting the project

You may support this project via <3

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].