Programming Foundations Algorithms With Python

Overview

Programming-Foundations-Algorithms

Algorithms purpose

to solve a specific proplem with a sequential sets of steps for instance : if you need to add different shaped in groups you can use loop by iterate on each shape if its belong to this group or not

Algorithms charachteristics

  • algorithms complixity
    • space complixity
    • time complixity
  • input and output
  • classification
    • serial/parallel
    • exact/approximate

common algorithms

  • searching algo find a specific data from a structure
  • sorting algo take a set of data and apply a sort order to it
  • computational algo given a ser of data calculate another (calculator)
  • collection algo work with collection of data : manipulating and navigating amoung sets of data that are sorted (count a specific items) exerciese for an algorithm
def greatest common denomonator (a,b)
    while (b != 0)
        t=a
        a=b
        b=t%b
    return a 

print(20,8)

Algorithm performance

  • how an algorithm will be have based on the size of input set data
  • big-O to describe algorithm performance as the size of input grows over time it usually describe the worst case senario

Time complixity rank

  • O(1) operation in question doesnt depend on the number of elements in the given data set (calculating the number is even or odd)
  • O(log n) finding a specific value in a sorted array using a bionary search so if the number of elements grow it takes logarithmic time relation to find any given item
  • O(n) searching for an item in an unsorted array as number of items increase it take the corrosponding linear time to complete the search
  • O(nlogn) sorting algorithm like stack and merge sort
  • O(n2) as the number of data increase the time it take is squared

Overview on Data structure

1: Array

it has either one dimention or multiple , you can calculate

  • item index O(1)
  • insert or delete at beginning or middle O(n)
  • insert or delete at end : O(1)

2: Linked lists(nodes)

  • linear collection of data elements each node has a field that refer to the next element in the list
  • the benifit of it over arrays is that its fast and easy to add and remove items from the list
  • its not necessary to recognize the essintial memory that hold the data because the individual nodes doesnt have to be stored adjecently like arrays
  • the linked lists cant do canstant time random access to any item in the list like the array

**you can inserting a new item in the list**

#### 3: stack **is collection that support two priciples .** * push * pop the last item pushed is the first one poped

is used in * expression processing * back tracking #### 4: Queue **its collection that supports adding and removing and work like stack but** the first item added is the first one removed

is used in * order processing * massaginh #### 5: hash tables **an ability to unique map a given key to a specific value (word during dictionary list)**

it * is very fast * for small data sets array is more efficient * hash table dont order entries in a predictable way ___ ### Recursion * your recursive function return at some point (breaking condition) * otherwise it leeds to infinite loop * each time the function called the value of arguments of the previous call are stored aside not written over by the new call (call stack) ### sorting data ####1: bubble sort

its

  • very simple to understand and implement
  • performance O(n2)
    • for loops inside of for loops are usually n2
  • other sorting algorithms are generally much better

2: merge sort

by

  • divide and conquer algorithm
  • breaks a dataset into individual pieces and merges them
  • uses recursion to operate on datasets its
  • performs well on large sets of data
  • generally has O(nlogn) performance

3: Quicksort

  • divide and conquer algorithm
  • uses recursion to operate on datasets
  • generally has O(nlogn) performance
  • operate in place on the data
  • worst case is O(n2) when data is mostly sorted already

searching data

  • unordered list search
  • ordered list search
  • determine if alist is sorted

other algorithms

  • filtering hash table
  • counting value with hash table
  • find max value recusively
Owner
omar nafea
omar nafea
Exact algorithm for computing two-sided statistical tolerance intervals under a normal distribution assumption using Python.

norm-tol-int Exact algorithm for computing two-sided statistical tolerance intervals under a normal distribution assumption using Python. Methods The

Jed Ludlow 1 Jan 06, 2022
A Python Package for Portfolio Optimization using the Critical Line Algorithm

A Python Package for Portfolio Optimization using the Critical Line Algorithm

19 Oct 11, 2022
All Algorithms implemented in Python

The Algorithms - Python All algorithms implemented in Python (for education) These implementations are for learning purposes only. Therefore they may

The Algorithms 150.6k Jan 03, 2023
iAWE is a wonderful dataset for those of us who work on Non-Intrusive Load Monitoring (NILM) algorithms.

iAWE is a wonderful dataset for those of us who work on Non-Intrusive Load Monitoring (NILM) algorithms. You can find its main page and description via this link. If you are familiar with NILM-TK API

Mozaffar Etezadifar 3 Mar 19, 2022
A command line tool for memorizing algorithms in Python by typing them.

Algo Drills A command line tool for memorizing algorithms in Python by typing them. In alpha and things will change. How it works Type out an algorith

Travis Jungroth 43 Dec 02, 2022
Robotic Path Planner for a 2D Sphere World

Robotic Path Planner for a 2D Sphere World This repository contains code implementing a robotic path planner in a 2D sphere world with obstacles. The

Matthew Miceli 1 Nov 19, 2021
A litle algorithm that i made for transform a picture in a spreadsheet.

PicsToSheets How it works? It is an algorithm designed to transform an image into a spreadsheet file. this converts image pixels to color cells of she

Guilherme de Oliveira 1 Nov 12, 2021
Exam Schedule Generator using Genetic Algorithm

Exam Schedule Generator using Genetic Algorithm Requirements Use any kind of crossover Choose any justifiable rate of mutation Use roulette wheel sele

Sana Khan 1 Jan 12, 2022
PathPlanning - Common used path planning algorithms with animations.

Overview This repository implements some common path planning algorithms used in robotics, including Search-based algorithms and Sampling-based algori

Huiming Zhou 5.1k Jan 08, 2023
Algorithmic trading backtest and optimization examples using order book imbalances. (bitcoin, cryptocurrency, bitmex)

Algorithmic trading backtest and optimization examples using order book imbalances. (bitcoin, cryptocurrency, bitmex)

172 Dec 21, 2022
Planning Algorithms in AI and Robotics. MSc course at Skoltech Data Science program

Planning Algorithms in AI and Robotics course T2 2021-22 The Planning Algorithms in AI and Robotics course at Skoltech, MS in Data Science, during T2,

Mobile Robotics Lab. at Skoltech 6 Sep 21, 2022
Esse repositório tem como finalidade expor os trabalhos feitos para disciplina de Algoritmos computacionais e estruturais do CEFET-RJ no ano letivo de 2021.

Exercícios de Python 🐍 Esse repositório tem como finalidade expor os trabalhos feitos para disciplina de Algoritmos computacionais e estruturais do C

Rafaela Bezerra de Figueiredo 1 Nov 20, 2021
Sign data using symmetric-key algorithm encryption.

Sign data using symmetric-key algorithm encryption. Validate signed data and identify possible validation errors. Uses sha-(1, 224, 256, 385 and 512)/hmac for signature encryption. Custom hash algori

Artur Barseghyan 39 Jun 10, 2022
Algorithms-in-Python - Programs related to DSA in Python for placement practice

Algorithms-in-Python Programs related to DSA in Python for placement practice CO

MAINAK CHAUDHURI 2 Feb 02, 2022
CLI Eight Puzzle mini-game featuring BFS, DFS, Greedy and A* searches as solver algorithms.

🕹 Eight Puzzle CLI Jogo do quebra-cabeças de 8 peças em linha de comando desenvolvido para a disciplina de Inteligência Artificial. Escrito em python

Lucas Nakahara 1 Jun 30, 2021
Genetic Algorithm for Robby Robot based on Complexity a Guided Tour by Melanie Mitchell

Robby Robot Genetic Algorithm A Genetic Algorithm based Robby the Robot in Chapter 9 of Melanie Mitchell's book Complexity: A Guided Tour Description

Matthew 2 Dec 01, 2022
Slight modification to one of the Facebook Salina examples, to test the A2C algorithm on financial series.

Facebook Salina - Gym_AnyTrading Slight modification of Facebook Salina Reinforcement Learning - A2C GPU example for financial series. The gym FOREX d

Francesco Bardozzo 5 Mar 14, 2022
A fast python implementation of the SimHash algorithm.

This Python package provides hashing algorithms for computing cohort ids of users based on their browsing history. As such, it may be used to compute cohort ids of users following Google's Federated

Hybrid Theory 19 Dec 15, 2022
causal-learn: Causal Discovery for Python

causal-learn: Causal Discovery for Python Causal-learn is a python package for causal discovery that implements both classical and state-of-the-art ca

589 Dec 29, 2022
A genetic algorithm written in Python for educational purposes.

Genea: A Genetic Algorithm in Python Genea is a Genetic Algorithm written in Python, for educational purposes. I started writing it for fun, while lea

Dom De Felice 20 Jul 06, 2022