Giter Club home page Giter Club logo

codeiiest / algorithms Goto Github PK

View Code? Open in Web Editor NEW
201.0 29.0 161.0 15.56 MB

A Repository to store implementation of some of the famous Data Structures and Algorithms (mainly in C/C++/Java/Python) for everyone to learn and contribute.

Home Page: http://codeiiest.github.io/Algorithms/

License: MIT License

C++ 74.92% C 11.40% Python 7.16% MATLAB 0.55% Java 5.97%
algorithms-datastructures algorithms machine-learning-algorithms mathematical-analysis competitive-programming

algorithms's Introduction

Algorithms


Codacy Badge Build status

Join the chat at https://gitter.im/codeIIEST/Algorithms


About the Project

This repository contains some of the most intriguing and awesome algorithms of daily life implemented in languages primarily in C/C++/Java/Python.


Project Details

The entire project is divided into 4 parts

  • Competitive Coding Algorithms and Data Structures
  • Security Algorithms
  • Machine Learning Algorithms
  • Statistical / Mathematical Algorithms

Contributing

We would always encourage contribution from new developers. We hope with your contributions the project ecosystem will evolve much more in the future.

For more details please see the Contributing Guidelines.

We maintain a curated list of issues under the issues page. We encourage to start working with them. Please join the gitter channel for any doubts.


Maintainers

algorithms's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

algorithms's Issues

Missing: Linked List operations based on Arrays

DESCRIPTION

There is a file containing all the operations that can be performed on a linked list in Algorithms/Competitive Coding/Linked List but it's only pointer based.

I would like to add an array based 'Linked_list_operation' file using C++ and if allowed I would like to rename the current one to 'Linked_list_operation_based_on_pointers'

STEPS TO REPRODUCE

  1. Adding the new file containing Linked List operations based on array
  2. Renaming the current file to 'Linked_list_operation_based_on_pointers'

EXPECTED OUTCOME

The repository will now have both array based and pointer based Linked List operations files.

ACTUAL OUTCOME

--

Proposed Solution

I would like to add an array based 'Linked_list_operation' file using C++ and if allowed I would like to rename the current one to 'Linked_list_operation_based_on_pointers'

Depth First Search - DFS

DESCRIPTION

To implement DFS in a graph

STEPS TO REPRODUCE

Implementing the Algorithm as I had Learnt from CLRS earlier this month via C or C++

EXPECTED OUTCOME

DFS traversal of graph is obtained

ACTUAL OUTCOME

To be tested and coded.

Contributiing Guidelines leads to 404 error

DESCRIPTION

Please provide a short, clear description of the problem

STEPS TO REPRODUCE

Please list the steps to reproduce the above problem

EXPECTED OUTCOME

What did you expect to happen

ACTUAL OUTCOME

What actually happened

Proposed Solution [optional]

If you know how to solve the above, please provide details here.

Dynamic Programming

Can I add some DP algorithms coded in C or C++?
I would like to add

  1. Rod Cutting Problem
  2. Min Cost Path between vertices
  3. Subset Sum
  4. Ugly Numbers

ANNOUNCEMENT !! Code Base File Structure needs changing

So the current code base contains all the algorithms and ds codes in a hapazard way
We intend to have a more organised structure

So the major directories will include some thing like this

  • Security Algorithms
  • Competitve Programming Algo+Ds
  • Machine Learning Algos
  • Statistical / Mathematical Algos

Please do not submit any new PR to the master now. Once the file gets structured, you are free to submit.

Add Searching algorithms for graphs

DESCRIPTION

Please provide a short, clear description of the problem
need to add searching algorithms for graphs

STEPS TO REPRODUCE

Please list the steps to reproduce the above problem

EXPECTED OUTCOME

--
What did you expect to happen

ACTUAL OUTCOME

--
What actually happened

Proposed Solution [optional]

If you know how to solve the above, please provide details here.
I want to add the algorithms for graphs in java

ANNOUNCEMENT !!! UPDATE YOUR FORK

The following PR is updating the file structure in your forks.

For those comfortable with GitHub , it should not be much of a problem.


P.S I am sending a new PR to all of you.

Make sure to merge them

Topological sort

In the graphs folder I would like to contribute towards topological sort.

Classify algorithms

Instead of searching all the through the list, how about creating folders like Bit manipulation, dynamic programming , greedy algorithms and so on. This would create a neat and tidy repo

Mathematics algorithms in C++

DESCRIPTION

I want to add some popular maths algorithms to this project in C++.

STEPS TO REPRODUCE

--

EXPECTED OUTCOME

--

ACTUAL OUTCOME

--

Proposed Solution [optional]

--

Cycle detection algorithm

DESCRIPTION

I want to add Cycle detection algorithm for a Undirected graph

STEPS TO REPRODUCE

--

EXPECTED OUTCOME

--

ACTUAL OUTCOME

--

Proposed Solution [optional]

upload the cycle detection algorithm for undirected graph

LINKED LISTS, SEARCHING, SORTING AND OTHER ALGORITHMS

DESCRIPTION

I want to propose new commits which include files containing a number of important algorithms in C or C++ .

STEPS TO REPRODUCE

New commits can be added with the required algorithms.

EXPECTED OUTCOME

A rich repository with a number of useful algorithms for student purpose like linked lists, stacks,queues,circular queues ,searching and sorting techniques etc.

What did you expect to happen

ACTUAL OUTCOME

The proposed outcome

Proposed Solution [optional]

If you know how to solve the above, please provide details here.

Maths Algorithms

Can I work on coding the Algorithms to solve the following problems

  1. Fast Fourier Transformation
  2. Sum of squares of first N natural numbers
  3. Checking for integer overflow on multiplication
  4. Convert Degree to Radian
  5. K-th Primes.

Math based algorithms

DESCRIPTION

WIll we implementing a few math based algorithms like:
(1) Factorial
(2) Fibonacci Series
(3) Project Euler problem-1
(4) An algorithm for a Random Number Generator

STEPS TO REPRODUCE

Will be coding the following algorithms in C,C++ or Python.

Proposed Solution [optional]

I'd like this issue to be assigned to me so that I can implement the following.

Machine Learning algorithms from scratch

This issue cover following algorithms:
1.Gradient descent
2.Normalize equation
for different model such as linear regression, polynomial regression and logistic regression.

Remove file

Remove a.out file from Algorithms/Competitive Coding/Dynamic Programming/Edit Distance/

Readme transfer for sort and search

The current readme contains only search and sort algo description.

Transfer into corresponding directories.

Like Competitive_Programming/Sorting/Sorting_Readme.md

Competitive_Programming/Searching/Searching_Readme.md

Greedy -> Activity Selection Problem

DESCRIPTION

Given n activities with their start and finish times, Select the maximum number of activities that can be performed by a single person, assuming that a person can only work on a single activity at a time.

DOUBLE LINKED LISTS IN C

DESCRIPTION

Double linked lists are another set of important data structures and algorithms.

STEPS TO REPRODUCE

Include algorithms for performing operations pertaining to doubly linked lists.

EXPECTED OUTCOME

A repository rich with double linked list algorithms.

ACTUAL OUTCOME

Expected Outcome

Proposed Solution [optional]

If you know how to solve the above, please provide details here.

program for stack

DESCRIPTION

adding stack program in cpp . stack is abstract data type with two principle operations push and pop.

STEPS TO REPRODUCE

Please list the steps to reproduce the above problem

EXPECTED OUTCOME

push,pop,peek operations will tested with an array and push will add elements ,pop will destroy the topmost element peek will be used to view topmost element

ACTUAL OUTCOME

same as expected.

Proposed Solution [optional]

upload the code for the operations.
i am assigning it to myself and adding the program in cpp

MACHINE LEARNING

Linear Programming using regression

  1. Linear Regression
    Implementation with application
  2. Logistic regression
    Implementation with application

could you assign this topic to me?

knuth morris pratt algorithm

DESCRIPTION

Knuth morris pratt algorithm is a string matching algorithm which matches the pattern in the text and indicates the location of occurrence.

EXPECTED OUTCOME

If we provide pattern and text strings to the program then it gives the location of occurrence in the text.

Pre, Post and In order traversal of binary trees

DESCRIPTION

Pre-order :-
visit the root node
traverse the left sub-tree
traverse the right sub-tree
In-order :-
traverse the left sub-tree
visit the root node
traverse the left sub-tree
Post-order :-
traverse the left sub-tree
traverse the right sub-tree
visit the root node

EXPECTED OUTCOME

all nodes of tree should be traversed.

Have a separate folder for sorting algorithms written in Python

I think it would be better if we create a separate folder for sorting algorithms in python as there might be people who only know Python and might know C or C++
As a result it might become difficult for them to comprehend the sorting algos in C and C++
Therefore I'd like to assign this task of creating a separate folder with Sorting algos in Python and write a couple of sorting algos into it too!

Randomized version of quicksort

DESCRIPTION

Randomized version of quicksort is mostly implemented in real life and is missing in the repo as it is the randomized quicksort which gives it the worst case O(nlogn) complexity and not the naive implementation.

STEPS TO REPRODUCE

EXPECTED OUTCOME

Code of randomized quicksort will be added.

ACTUAL OUTCOME

Proposed Solution [optional]

I will like to add the randomized quicksort in the quicksort folder.

Project page for the repository

There are some study materials and READMEs here and there all over the repository. Since this repo was meant for people to get a compiled list of algorithms, I think it would be better to just create a site and post all the study materials there. That would make it more readable and easily accessible.

I have created a jekyll blog, that can be accessed using codeiiest.github.io/Algorithms. Check the gh-pages branch for contributing.

Heap Sort Readme looks not good

Remove the extra ## heading formats in the readme under HeapSort folder.

since @AdvikEshan you worked on this, I am assigning to you

screenshot 2017-12-08 13 22 39

Graphs

DESCRIPTION

I would like to document prims ,kruskal,Dijkstra's algorithms

STEPS TO REPRODUCE

Will be coding in Java,C and describing pseudocode for algo

Segment trees

Description

Segment trees:

Segment trees are very useful for range queries. Segment trees do the update and query operation in log(n) time. They are binary trees in which the given array is modified into a tree which help in solving the query.

Popular Mathematical Algorithms in Python

DESCRIPTION

(Not a defect) I would like to implement some popular mathematical algorithms in Python 3.x

LIST OF ALGORITHMS

  • Permutations and Combinations over a board of characters (Boggle)
  • Modular Exponentiation
  • Modular multiplicative Inverse
  • Symmetric Groups and Group Operation on Symmetric Groups
  • Primality Test (Varied methods)
  • Euler's Totient function
  • Sieve of Eratosthenes
  • Convex Hull
  • Basic and Extended Euclidean Algorithms (probably done in other languages)
  • Chinese Remainder Theorem

Proposal

@prateekiiest I would be grateful if you allow me to contribute the above to this repo.

Circular Queue

DESCRIPTION

I want to work on a cpp file which contains code for circular queue

STEPS TO REPRODUCE

A cpp file will be added with the required code

EXPECTED OUTCOME

A file for circular queue

ACTUAL OUTCOME

Same as expected

Bitwise Operations

DESCRIPTION

Would like to work on bitwise operations and programs related to it.

Interesting math algo in competitive programming

DESCRIPTION

i am going to implement a few math based algorithms like Lucky number, Babylonian method for square root..more and more.

##STEPS TO REPRODUCE

Will be coding the algorithms in C++.

EXPECTED OUTCOME

what will happen i will describe with example.

Proposed Solution [optional]

issue.txt

I'd like this issue to be assigned to me so that I can implement the following.

Detecting cycles in graphs

DESCRIPTION

Union-find algorithm is used in detecting cycles in graph. I would like to document this algorithm in c++. This is also know as disjoint set method

add algorithms for finding MST

DESCRIPTION

Need to add algorithms for finding the minimum spanning tree

STEPS TO REPRODUCE

--

EXPECTED OUTCOME

--

ACTUAL OUTCOME

--

Proposed Solution [optional]

add algorithms for finding the minimum spanning tree

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.