Git Product home page Git Product logo

sukritishah15 / ds-algo-point Goto Github PK

View Code? Open in Web Editor NEW
955.0 67.0 293.0 4.01 MB

This repository contains codes for various data structures and algorithms in C, C++, Java, Python, C#, Go, JavaScript, PHP, Kotlin and Scala

License: MIT License

C++ 24.84% Java 33.69% Python 15.35% C 15.60% JavaScript 3.62% Go 1.47% C# 3.13% PHP 1.11% Kotlin 1.09% Scala 0.09%
hacktoberfest c cpp java python data-structures algorithms javascript go php csharp kotlin scala

ds-algo-point's Introduction

Overview

  • The goal of this project is to have codes for various data structures and algorithms - in C, C++, Java, Python, C#, Go, JavaScript, PHP, Kotlin and Scala.
  • Feel free to contribute in any way you want.
  • Make sure to follow the contribution guidelines listed below.

Content

  • We currently have 10 folders for 10 programming languages - C, C++, Java, Python, C#, Go, JavaScript, PHP, Kotlin and Scala.
  • Do not create folders in your submissions, unless specifically told to do so.

YOU CANNOT CREATE A PR DIRECTLY. YOU NEED TO BE ASSIGNED AN ISSUE. IF THE ISSUE DOES NOT EXIST, CREATE ONE, ASK FOR IT IN YOUR PREFERRED PROGRAMMING LANGUAGE AND WAIT FOR IT TO BE ASSIGNED TO YOU. NOT FOLLOWING THIS WILL BE CONSIDERED A VIOLATION AND YOUR PR WILL BE MARKED INVALID. WHILE CREATING AN ISSUE, PLEASE FOLLOW THE FORMAT, ELSE, THE ISSUE WILL BE CLOSED.


Contribution Guidelines {For a more detailed explanation read How to Contribute?}

  • Issues will be assigned on a first come, first serve basis. The person who creates the issue gets the first priority. And then, issues are assigned based on who commented first. You just have to comment on the issue, asking to be assigned and the programming language you should be assigned in, and it will be done if found fit.
  • You cannot work on any issue that is not assigned to you.
  • If you have anything else in mind, FEEL FREE TO CREATE AN ISSUE and please wait for it to be assigned to you. If assigned to you, then you can start working on it and create a PR.
  • All PRs must be made from a Branch. Create a separate branch for every Issue you are working upon and then create a PR.
  • In your code file, add (Inside a multiline comment) Sample Input and Output at the end of the file along with Time and Space Complexity.
  • Every time you add a file via a Pull Request also update the README.md file for that particular language in Alphabetical Order in the same PR. You'll find a README.md file in each language folder.
  • Plagiarism is highly discouraged and a plagiarized PR won't be accepted at all and will be marked as spam.
  • PR should be created within a week of you being assigned to it.
  • At no point of time, you can claim more than 4 issues i.e. you can have at max 4 working issues, for this repository, at any point of time.

Where to upload the files

PLEASE READ THIS

  • Your files should be uploaded directly into the corresponding folder (e.g. if you wrote code for a Data Structure in C-Plus-Plus, it goes inside the C-Plus-Plus folder and so on)
  • Edit the corresponding README.md file to add the link to your code in the corresponding section (GitHub Markdown Guide)
  • Under no circumstances create new folders within the language folders to upload your code unless specifically told to do so.

Don't know how to create a PR? Refer this: Steps to create a PR

We are NOT actively accepting submissions for Hacktoberfest'22

Maintainers for this project (Refer this for Instructions specific to Maintainers)

  • Sukriti Shah - @sukritishah15

Past Maintainers for this project

  • Sukriti Shah - @sukritishah15
  • Aditi Khemka - @aditik03
  • Gunisha Chaturvedi - @gunisha30
  • Manan - @manan025
  • Sumit Kumar Roy - @mephi007
  • Falguni Sarkar - @lostgirljourney
  • Ananya Nagar - @AnanyaNagar
  • Rahul Joshi - @mrjoshi0147
  • Unnati Deshwal - @unnatideshwal
  • Manan Chawla - @mananchawla2005
  • Niranjan Kumar S - @niranjantuty
  • Sunil Nair- @sunilgknair051
  • Muskan Gupta - @muskangupta19
  • Priyal - @priyal2806
  • Mahima Goyal - @mahimagoyalx
  • Paul Evans - @PaulEvans8669
  • Aman Parauliya - @parauliya
  • Arnav Roy - @arnav-roy
  • Wallace Costa - @wallacecosta
  • Shivam Yadav - @ExpressHermes

In association with

ACM-W MUST STUDENT CHAPTER (Sept - Oct 2020)

License

This project follows the MIT License.

SHOW SOME LOVE BY LEAVING A โญ

ds-algo-point's People

Contributors

aditik03 avatar anmolmahajan11 avatar anushka-rajvanshi avatar arnav-roy avatar codewithnick avatar garimamahajan20 avatar gfmota avatar harshit-2708 avatar jhoserpacheco avatar jovianjaison avatar lostgirljourney avatar m-k-0100074 avatar manan025 avatar manavi18 avatar meghanakolluri avatar mephi007 avatar natedtcc avatar nikolatechie avatar niranjantuty avatar rohank6 avatar scshiv29-dev avatar shaswatsingh19 avatar shrey2002 avatar sukritishah15 avatar sunilgknair051 avatar sushant-varanasi avatar tatticoder avatar vaneet-hash avatar wallacecosta avatar yashkansal avatar

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  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

ds-algo-point's Issues

Sieve of Eratosthenes

๐Ÿš€ Feature

Given a number n, print all primes smaller than or equal to n using Sieve of Eratosthenes technique.

Have you read the Contribution Guidelines?

Yes

Pitch

This is one of the best algorithms to find the prime from a particular range and also to find the prime number with O(nlogn) time complexity

Assignees

@shaswatsingh19 - Python
@harshit-labs - C
@mcaupybugs - C++
@chhipanikhil9 - Java
@Carbon24 - JavaScript

Implement a code to find nth term of an A.P.

๐Ÿš€ Feature

Given the first two terms, a1 and a2, of an A.P. (Arithmetic Progression), and an integer n, find the value of nth term in the A.P.

For example -

Input:
a1 = 2
a2 = 3
n=4

Output:
5

Explanation:
The A.P. for this example would be - 2, 3, 4, 5, 6, 7, ...

Have you read the Contribution Guidelines?

Yes

Pitch

This is an extremely simple mathematical problem. A good beginner-friendly issue.

Assignees

@vanisha23 - C
@niranjantuty - C-Plus-Plus
@mananchawla2005 - Java
@mananchawla2005 - Python

Check if an integer is Armstrong

๐Ÿš€ Feature

Check whether a number entered by the user is Armstrong or not.

A positive integer of n digits is called an Armstrong Number (of order n) if:
abcd.. = a^n + b^n + c^n + d^n + ...

for eg: 153 is an armstrong number because, 153= 1x1x1 + 5x5x5 + 3x3x3 i.e. 1^3+5^3+3^3 = 153.

Have you read the Contribution Guidelines?

Yes

Pitch

An interesting and elementary math-based problem.

Assignees

@lostgirljourney - C
@AnkitJuyal009 - Java
@niranjantuty - Python
@Anushka-Rajvanshi - C++
@Anni852 - JavaScript
@FinalGetsugaa - C#

Implementing Greedy algorithm in C++

๐Ÿš€ Implementing Greedy algorithm in C++

Given a value V, if we want to make a change for V Rs, and we have an infinite supply of each of the denominations in Indian currency, i.e., we have an infinite supply of { 1, 2, 5, 10, 20, 50, 100, 500, 1000} valued coins/notes, what is the minimum number of coins and/or notes needed to make the change?

Have you read the Contribution Guidelines?

Yes

Pitch

This is an important algorithm to be looked upon

Assignees

@sushant-varanasi - Java, Python

Dijkstra's Algorithm

๐Ÿš€ Feature

Add Dijkstra's Algorithm in C++ (optimized in best way possible)

Have you read the Contribution Guidelines?

Yes

Pitch

Dijkstra's Algorithm is a very famous graph algorithm which finds shortest paths from the starting node to all nodes of the graph provided there is no negative edges in the graph.

Assignees

@krrahul23 - C++
@nileshteji - Java
@sukanyashet - C
@Pratik-Patil-p0212-m3108 - Python

Tower of Hanoi using recursion

๐Ÿš€ Feature

Add tower of Hanoi recursion code in C++ (Optimized in the best way possible)

Have you read the Contribution Guidelines?

Yes

Pitch

(Please explain why this feature should be implemented and how it would be used.)

Want to add the tower of Hanoi program as it is not yet added but remains one of the most asked interview questions. Please assign me the cpp code task

Assignees

@nileshteji - Java
@Devansh2005 - Python
@therohanjaiswal - C

Implement Circular Queue

๐Ÿš€ Feature

Implement Circular Queue

Have you read the Contribution Guidelines?

Yes

Pitch

A basic linear data structure in which the operations are performed based on FIFO (First In First Out) principle and the last position is connected back to the first position to make a circle.

Assignees

@jovianjaison - C++
@scshiv29-dev - Python
@yashkansal - Java
@Devansh2005 - C

Implement a code to find nth term of a G.P.

๐Ÿš€ Feature

Given the first two terms, a1 and a2, of an G.P. (Geometric Progression), and an integer n, find the value of nth term in the G.P.

For example -

Input:
a1 = 1
a2 = 2
n=4

Output:
8

Explanation:
The G.P. for this example would be - 1, 2, 4, 8, 16, ...

Have you read the Contribution Guidelines?

Yes

Pitch

This is an extremely simple mathematical problem. A good beginner-friendly issue.

Assignees

@banerjee-suchismita - C
@Pratap2018 - C++
@niranjantuty - Java
@mananchawla2005 - Python

Implementing Kahn's Algorithm for finding the Topological Sort of a Directed Acyclic Graph

๐Ÿš€ Feature

Implementing Kahn's Algorithm for finding the Topological Sort of a Directed Acyclic Graph

Have you read the Contribution Guidelines?

Yes.

Pitch

Topological Sort is a very technique to find which task needs to be completed before whom. In real world, we can represent the dependent tasks into a directed acyclic graph and find the topological sorting of the Directed Acyclic graph to find the optimal ordering.

Assignees

@ankur-kayal - C++
@Manognya1000 - Java
@AdeshChoudhar19 - Python
@SuyashMore - Go

Implement Merge sort

๐Ÿš€ Feature

merge sort implementation in python

Have you read the Contribution Guidelines?

Yes

Pitch

Merge sort is a divide and conquer type algorithm with a time complexity of O(nlogn) which is better than selection and insertion sort

Implement 0/1 Knapsack Problem using Dynamic Programming approach

๐Ÿš€ Feature

Consider an example of a thief who wants to steal jewelry from a jewelry shop but he has a constraint with the bag he carries which can only hold some specific weight. Help him picking up the jewelry such that he gets maximum profit without violating the bag's constraint.

For example-
Input-
value[] = {60,100,120}
weight[] = {10,20,30}
W = 50 (weight of knapsack)
Output-
Profit = 220

Have you read the Contribution Guidelines?

yes

Pitch

By solving this problem one can understand the concept of dynamic programming approach.

Assignees

@juanbelieni - Python
@chhipanikhil9 - C++
@shubhi2000 - Java
@616bqwerty - C

Check for balanced parentheses in an expression

๐Ÿš€ Feature

Given a string expression, check whether the pair and order of { }, ( ),[ ] are correct in expression.

For example-
Input: ({[]})
Output: Balanced

Input: (({})
Output: Not Balanced

Have you read the Contribution Guidelines?

yes

Pitch

You will get to know about the implementation of the stack data structure.
Checking whether parentheses are balanced or not is one of the most important tasks of a compiler.

Assignees

@chhipanikhil9 - C++
@SuyashGupte - Python
@Anushka-Rajvanshi - C
@yashkansal - Java

Create CONTRIBUTION_GUIDELINES.md

Create a separate markdown for for contribution guidelines

Have you read the Contribution Guidelines?

Yes

Pitch

I understand that having guidelines in readme.md is convenient and beginner friendly But, having a separate contributing.md in root of directory will make this repository more modular and structured. Many projects use this structure and GitHub shows a link at top of page to this file to make it easily accessible.
Moreover, This would make it easier for veteran developers easier to contribute to this project and prepare amateur developers to work on other projects and make them familiar with industry standards.

Assignees

@tatticoder

Find Greatest common divisor

Greatest common divisor

Implement Euclidean Algorithm to find greatest common divisor of 2 given numbers.

Have you read the Contribution Guidelines?

Yes

Pitch

It will be implemented as a function which returns Highest common factor of given 2 numbers. This algorithm is much more fast and efficient than the naive approach and takes very short amount of time to compute GCD of very large numbers.

Assignees

@tatticoder - C++
@Manavi18 - Python
@natedtcc - Java
@sudheer121 - C
@arnav-roy - Javascript
@100mik - Go
@natedtcc - PHP

Implement Insertion Sort

๐Ÿš€ Feature

Implement Insertion Sort. Do add Sample Input/Output, Time and Space Complexity at the bottom of the file (inside a comment).

Have you read the Contribution Guidelines?

Yes

Pitch

A very basic and standard sorting algorithm.

Assignees

@lostgirljourney - Python
@Anni852 - C++
@JanetLaysEggs - C
@Anushka-Rajvanshi - Java

Reverse a linked list

๐Ÿš€ Feature

Given a linked list, reverse it.
Linked List: 1->2->3->4->5->6
After reversing the list, elements are 6->5->4->3->2->1.

Have you read the Contribution Guidelines?

Yes

Pitch

An easy Linked List problem.

Assignees

@Parth505 - Python
@AdeshChoudhar19 - C++
@kamil200 - Java
@satwik-chowdary - C

Implement a code to check whether a number is neon or not

๐Ÿš€ Feature

A simple program to check whether the entered number by the user is neon or not.
A neon number is a number where the sum of digits of square of the number is equal to the number.
Example: 9
Sum of digits of it's square = (8 + 1) = 9 = number entered by the user
So, 9 is a NEON NUMBER.

Have you read the Contribution Guidelines?

Yes

Pitch

This can be an initial and easy step for a beginner to implement this code

Assignees

@Devansh2005 - Python
@tauseefmohammed2 - C++
@prophet-x - C
@niranjantuty - Java
@Carbon24 - JS

Implement Radix Sort and Bucket Sort in Python

๐Ÿš€ Feature

Implement Radix Sort, and Bucket Sort algorithms.

Have you read the Contribution Guidelines?

Yes.

Pitch

Since sorting can often reduce the complexity of a problem, these are the most needed prerequisites for problem-solving in Computer Science. These algorithms have direct applications in them and a must before delving deeper.

Assignees

Radix Sort

C - @kamalrt11
C++ - @ankur-kayal
Java - @yashkansal
Python - @nerdynikhil

Bucket Sort

C - @kamalrt11
C++ - @harshit-labs
Java - @Manognya1000
Python - @nerdynikhil

Find middle element in a Linked List

๐Ÿš€ Feature

Given a singly linked list of N nodes. The task is to find the middle of the linked list.
For example, if given linked list is 1->2->3->4->5 then the output should be 3.
If there are even nodes, then there would be two middle nodes, we need to print the second middle element.
For example, if given linked list is 1->2->3->4->5->6 then the output should be 4.

Have you read the Contribution Guidelines?

Yes

Pitch

An easy Linked List Question.

Assignees

@gokulkannan7 - C++
@codewithnick - Python
@prophet-x - Java
@satwik-chowdary - C

Implement Merge Sort

๐Ÿš€ Feature

Implement Merge Sort.
Add (inside comment) Sample input and output at the end of the file along with Time and Space Complexity.

Have you read the Contribution Guidelines?

Yes.

Pitch

This sorting technique will let you understand the Divide and Conquer approach and the concept of stable algorithms.

Assignees

@Pratap2018 - C
@AnanyaNagar - C++
@Pratap2018 - Java
@ashitajain14 - Python

Rotate LinkedList in K group

๐Ÿš€ Feature

Rotate LinkedList in K group

Have you read the Contribution Guidelines?

Yes

Pitch

(Please explain why this feature should be implemented and how it would be used.)
Gives visualization to recursion and LinkedList.

Assignees

@mephi007 - Java
@singlamohit1 - C++

Implement Shell Sort Algorithm

๐Ÿš€ Feature

Implement a shell sort algorithm, including comments and time/space complexity.

Have you read the Contribution Guidelines?

Yes.

Pitch

Haven't seen this one listed yet! I would like to submit a Java implementation of it. Thanks!

Assignees

@Manavi18 - Python
@manan025 - C++
@natedtcc - Java
@AdeshChoudhar19 - C

Algorithms in python

๐Ÿš€ Feature

All the Algorithms in python which is easy to understand and can help the beginner to learn algorithm in python

Have you read the Contribution Guidelines?

Yes

Pitch

Most of us do competitive programming in c++ or java but most of the competitive programmer doesn't use python so just trying to make a change here because if a beginner try to read a c++ file of a competitive programmer like William lin or tourist they would have known about a lot of things but python been a full high level that is very much similar to English it's easy of beginner to learn it.

Adding Resources for learning Git and GitHub for New Beginners

๐Ÿš€ Feature

Want to add resources for those who're new to OPEN SOURCE Contribution.
ALL CONTRIBUTORS are welcome to contribute.

A Resources.md file shall be created for this issue.
ALL CONTRIBUTORS can add their set of resources in this file.
Thank you!

Have you read the Contribution Guidelines?

Yes

Pitch

Since Hacktoberfest is around the corner, wanna help who're extremely new to Git and GitHub environment.

Initiative taken by @lostgirljourney

Longest length path in a matrix

๐Ÿš€ Feature

Description

A program to find the longest length path in a matrix which is taken as input from the user. The difference between two consecutive elements must be same for all the elements present in the path.
(Important concept for competitive programming).

Example

Input:
{{1, 0, 9}
{2, 3, 8}
{4, 6, 7}}

Output: 4

Since, the longest path is 6-7-8-9.

Have you read the Contribution Guidelines?

Yes.

Pitch

(Please explain why this feature should be implemented and how it would be used.)

It is an important topic in dynamic programming and questions from this topic is often found in coding competitions.

Assignees

@mcmonojit - Java assigned
@gfmota - C

Implementation of Singly Linked List, Doubly Linked List, Circular Singly Linked List, Circular Doubly Linked List, Stack, Queue

๐Ÿš€ Feature

Implementation of -

  1. Singly Linked List
  2. Doubly Linked List
  3. Circular Singly Linked List
  4. Circular Doubly Linked List
  5. Stack
  6. Queue

There will be different files for each data structure.
Don't forget to add Sample I/O and Time & Space Complexity at the end of the file
Each data structure is to be implemented in 4 different languages.
So, for this issue we will have 24 PR's.

Have you read the Contribution Guidelines?

Yes.

Assignees

1. Singly LL

C - @lostgirljourney - Completed
C++ - @Jashandeep2020
Java - @mukulpathania96
Python - @patricktrp

2. Doubly LL

C - @Anni852
C++ - @Anni852
Java - @mukulpathania96
Python - @Karthik-Shenoy

3. Circular Singly LL

C - @osomat123
C++ - @AnanyaNagar
Java - @mukulpathania96
Python - @Karthik-Shenoy

4. Circular Doubly LL

C - @osomat123
C++ - @Rahulraj31
Java - @mukulpathania96
Python - @Karthik-Shenoy

5. Stack

C - @aditik03
C++ - @Jashandeep2020
Java - @scshiv29-dev
Python - @codewithnick
JavaScript - @Ritika0126

6. Queue

C - @aditik03
C++ - @APOORVANAGAR-2002
Java - @scshiv29-dev
Python - @Karthik-Shenoy - Completed

Implement Quick Sort on Doubly Linked List

๐Ÿš€ Feature

Implementation of quick sort algorithm on doubly linked list

Have you read the Contribution Guidelines?

yes

Pitch

Quick Sort algorithm is a divide and conquer algorithm which selects an element as a pivot and does partition around it.

Assignees

@yashkansal - Java
@manan025 - Python
@malhotraravi842 - C++
@Manognya1000 - C

Implement Big mod using Binary exponation

๐Ÿš€ Feature

(Write down a clear and concise description of what the feature is.)
Binary exponation is optimize solution for finding Big squre problem,
Time Complexity : O(log n)

Input : 3 18132 17 example (3 POW 18132 mod 17)=13
Output : 13

Have you read the Contribution Guidelines?

Yes !

(Write your answer here.)

Pitch

(Please explain why this feature should be implemented and how it would be used.)

Assignees

@Akash52 - C++

Kadane's Algorithm to find maximum sum subarray.

๐Ÿš€ Feature

Implementation of Kadane's algorithm which is used to find the maximum sum continuous subarray in O(n) time.

Have you read the Contribution Guidelines?

Yes

Pitch

Kadane's algorithm is a very famous algorithm which is used to find the maximum sum continuous subarray in O(n) time complexity . This algorithm falls under dynamic programming paradigm.

Assignees

@krrahul23 - C++
@mrjoshi0147 - Java
@Mynk-9 - Python
@sohail24 - C

Implement Singly Linked List

๐Ÿš€ Feature

An implementation of the Singly Linked List data structure with commands such as:

  • reverse traversal
  • node deletion
  • node insertion
  • normal traversal

Have you read the Contribution Guidelines?

Yes

Pitch

I will be doing this in Python with proper commenting.

Implement Stack

๐Ÿš€ Feature

I've seen that Stack is missing from the data structure

Have you read the Contribution Guidelines?

yes

Pitch

Stack is one of the simple data structure ,if you''ll open this issue , i'd like to implement it it in cpp

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.