diff --git a/C++/Selection_Sort.cpp b/C++/Selection_Sort.cpp new file mode 100644 index 0000000..5cacb0d --- /dev/null +++ b/C++/Selection_Sort.cpp @@ -0,0 +1,36 @@ +#include +using namespace std; + +void selectionSort(int arr[], int size) { + int i, j, min; + for(i = 0 ; i < size -1 ; i++) { + min = i; + for(j = i + 1 ; j < size ; j++) + if(arr[j] < arr[min]) + min = j; + int temp = arr[i]; + arr[i] = arr[min]; + arr[min] = temp; + } +} +int main() { + int n; + cout << "Enter the number of elements: "; + cin >> n; + int arr[n]; + cout << "Enter elements:" << endl; + for(int i = 0 ; i < n ; i++) + cin >> arr[i]; + + cout << "Array before Sorting: "; + for(int i = 0 ; i < n ; i++) + cout << arr[i] << " "; + cout << endl; + + selectionSort(arr, n); + cout << "Array after Sorting: "; + for(int i = 0 ; i < n ; i++) + cout << arr[i] << " "; + cout << endl; + return 0; +} diff --git a/C/Math/Factorial.c b/C/Math/Factorial.c new file mode 100644 index 0000000..e120ba8 --- /dev/null +++ b/C/Math/Factorial.c @@ -0,0 +1,18 @@ + +#include + +int main(){ + int c, n, f = 1; + + printf("Enter a number to calculate its factorial\n"); + scanf("%d", &n); + if(n>=0){ + for (c = 1; c <= n; c++) + f = f * c; + + printf("Factorial of %d = %d\n", n, f); + } + else + printf("Number Should be greater than zero\n"); + return 0; +} diff --git a/C/Searching/Binary_Search.c b/C/Searching/Binary_Search.c new file mode 100644 index 0000000..bbba26c --- /dev/null +++ b/C/Searching/Binary_Search.c @@ -0,0 +1,39 @@ + +#include + +int main() +{ + int c, first, last, middle, n, search, array[100]; + + printf("Enter number of elements\n"); + scanf("%d", &n); + + printf("Enter %d integers\n", n); + + for (c = 0; c < n; c++) + scanf("%d", &array[c]); + + printf("Enter value to find\n"); + scanf("%d", &search); + + first = 0; + last = n - 1; + middle = (first+last)/2; + + while (first <= last) { + if (array[middle] < search) + first = middle + 1; + else if (array[middle] == search) { + printf("%d found at location %d.\n", search, middle+1); + break; + } + else + last = middle - 1; + + middle = (first + last)/2; + } + if (first > last) + printf("Not found! %d isn't present in the list.\n", search); + + return 0; +} diff --git a/C/Searching/Linear_Search.c b/C/Searching/Linear_Search.c new file mode 100644 index 0000000..3f9fb13 --- /dev/null +++ b/C/Searching/Linear_Search.c @@ -0,0 +1,31 @@ + +#include + +int main() +{ + int array[100], search, c, n; + + printf("Enter number of elements in array\n"); + scanf("%d", &n); + + printf("Enter %d integer(s)\n", n); + + for (c = 0; c < n; c++) + scanf("%d", &array[c]); + + printf("Enter a number to search\n"); + scanf("%d", &search); + + for (c = 0; c < n; c++) + { + if (array[c] == search) /* If required element is found */ + { + printf("%d is present at location %d.\n", search, c+1); + break; + } + } + if (c == n) + printf("%d isn't present in the array.\n", search); + + return 0; +} diff --git a/README.md b/README.md index 7143e03..e874ac6 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,448 @@ -# algorithmsUse +# AlgorithmsUse Common Algorithms which are usually taught in Data Structures and Algorithms courses. -### Contributions +## Hacktoberfest -Add any Algorithm which is not already present in its respective Programming Language directory. +This repo is Hacktoberfest friendly. As long as the program is properly commented, variable names are intuited, program works, is not already present, and added to the README files it will be accepted. + +## Contributions + +Add any Algorithm which is not already present in its respective Programming Language directory. Also, update the respective lanuage's README file and the main repo README file with your algorithm's name. If you don't find your favorite programming language's directory, feel free to create it. +Updates to this README are also appreciated. + You can also contact me if you have any issues. + +For info about more repos to contribute to, check out the below post: + +https://cppsecrets.com/users/5617971101051071011161151049711410997484852494964103109971051084699111109/Open-Source-and-Hacktoberfest.php + +## Current Algorithms + +### Table of Contents + +- [C](#C) +- [C++](#C++) +- [Dart](#Dart) +- [Python](#Python) +- [Java](#Java) +- [JavaScript](#Javascript) +- [Go](#Go) +- [Swift](#Swift) + + + + +### C + + + +

+ +#### Table of Contents + +- [Math](#math) +- [Searching](#searching) + +#### Math + +- [Factorial](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C/Math/Factorial.cpp) + + + +#### Searching + +- [BinarySearch](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C/Searching/BinarySearch.cpp) + +- [LinearSearch](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C/Searching/LinearSearch.cpp) + + + + + +### C++ + + + +

+ +#### Table of Contents + +- [Graph Algorithms](#graph) +- [Math](#math) +- [Searching](#searching) +- [Sorting](#sorting) +- [Miscellaneous](#others) +- [Unit Tests](#unit-tests) + + + +#### Graph Algorithms + +- [Dijktras](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Graph%20Algorithms/Dijktras.cpp) +- [Floyd_Warshall](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Graph%20Algorithms/Floyd_Warshall.cpp) +- [Kosaraju_algorithm](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Graph%20Algorithms/Kosaraju_algorithm.cpp) + + + +#### Math + +- [binary_Exponentiation](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Math/binary_Exponentiation.cpp) +- [Factorial_20](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Math/Factorial_20.cpp) + + + +#### Searching + +- [BinarySearch](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Searching/BinarySearch.cpp) + +- [BreadthFirstSearch](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Searching/BreadthFirstSearch.cpp) + +- [DepthFirstSearch](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Searching/DepthFirstSearch.cpp) + +- [ExponentialSearch](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Searching/ExponentialSearch.cpp) + +- [Fibonacci_Search](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Searching/Fibonacci_Search.cpp) + +- [LinearSearch](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Searching/LinearSearch.cpp) + +- [RecursiveLinearSearch](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Searching/RecursiveLinearSearch.cpp) + +- [StairCaseSearch](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Searching/StairCaseSearch.cpp) + + + +### Sorting + +- [BubbleSort](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Sorting/BubbleSort.cpp) + +- [countingSort](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Sorting/countingSort.cpp) + +- [heapsort](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Sorting/heapsort.cpp) + +- [insertion_sort](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Sorting/insertion_sort.cpp) + +- [mergesort](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Sorting/mergesort.cpp) + +- [quicksort](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Sorting/quicksort.cpp) + +- [RadixSort](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Sorting/RadixSort.cpp) + + + +### Miscellaneous + +- [KMPAlgo](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Miscellaneous/KMPAlgo.cpp) + +- [KadanesAlgo](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Miscellaneous/KadanesAlgo.cpp) + +- [RoundRobin](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Miscellaneous/RoundRobin.cpp) + +- [SieveOfEratosthenes](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Miscellaneous/SieveOfEratosthenes.cpp) + +- [StringSorting](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Miscellaneous/StringSorting.cpp) + +- [greedy_money_change_recursive](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Miscellaneous/greedy_money_change_recursive.cpp) + +- [huffmanencoding](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Miscellaneous/huffmanencoding.cpp) + +- [pascaltriangle](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Miscellaneous/pascaltriangle.cpp) + +- [sjf](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Miscellaneous/sjf.cpp) + +- [tower_of_hanoi](https://github.com/aniketsharma00411/algorithmsUse/blob/master/C%2B%2B/Miscellaneous/tower_of_hanoi.cpp) + +### Unit Tests + +-- + + + +## Dart + +

Dart


+ +

+ +## Table of Contents + +- [Searching](#searching) +- [Sorting](#sorting) +- [Unit Tests](#unit-tests) + + + +### Searching + +- [binary_search](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Dart/Searching/binary_search.dart) + +- [linear_search](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Dart/Searching/linear_search.dart) + + + +### Sorting + +- [bubble_sort](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Dart/Sorting/bubble_sort.dart) + +- [merge_sort](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Dart/Sorting/merge_sort.dart) + +- [selection_sort](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Dart/Sorting/selection_sort.dart) + + + +### Unit Tests + +-- + + + +## Java + +

Java


+ +

+ +## Table of Contents + +- [Arrays](#arrays) +- [Recursion](#recursion) +- [Searching](#searching) +- [Sorting](#sorting) +- [Unit Tests](#unit-tests) + + + +### Arrays + +- [checkIfArrayIsSorted](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Arrays/checkIfArrayIsSorted.java) + +- [deleteElement](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Arrays/deleteElement.java) + +- [FibonacciSeries](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Arrays/FibonacciSeries) + +- [getLargestElementIndex](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Arrays/getLargestElementIndex.java) + +- [insertion](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Arrays/insertion.java) + +- [leftRotateByOne](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Arrays/leftRotateByOne.java) + +- [moveZerosToEnd](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Arrays/moveZerosToEnd.java) + +- [removeDuplicatesFromSortedArray](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Arrays/removeDuplicatesFromSortedArray.java) + +- [rotateArrayDTimes](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Arrays/rotateArrayDTimes.java) + +- [Two Pointer Algorithm](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Arrays/Two%20Pointer%20Algorithm) + + + +### Recursion + +- [binaryExponentiation](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Recursion/binaryExponentiation.java) + +- [checkPalindromeNumber](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Recursion/checkPalindromeNumber.java) + +- [countDigitsInANumber](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Recursion/countDigitsInANumber.java) + +- [euclidGCD](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Recursion/euclidGCD.java) + +- [factorialUsingRecursion](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Recursion/factorialUsingRecursion.java) + +- [nCr](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Recursion/nCr.java) + +- [nthFibonacci](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Recursion/nthFibonacci.java) + +- [printArrayRecursive](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Recursion/printArrayRecursive.java) + +- [printOneToN](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Recursion/printOneToN.java) + +- [sumOfDigits](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Recursion/sumOfDigits.java) + +- [sumOfNNumbers](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Recursion/sumOfNNumbers.java) + +- [towerOfHanoiMoveCount](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Recursion/towerOfHanoiMoveCount.java) + + + +### Searching + +- [BinarySearch](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Searching/binarySearch.java) + +- [ExponentialSearch](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Searching/ExponentialSearch.java) + +- [Interpolation_Search](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Searching/Interpolation_Search.java) + + + +### Sorting + +- [bubbleSort](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Sorting/bubbleSort.java) + +- [heapSort](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Java/Sorting/heapSort.java) + + + +### Unit Tests + +-- + + + +## JavaScript + +

JavaScript


+ +

+ +### Table of Contents + +- [Graph Algorithms](#graph) +- [Sorting](#sorting) +- [Unit Tests](#unit-tests) + + + +### Graph Algorithms + +- [bfs](https://github.com/aniketsharma00411/algorithmsUse/blob/master/JavaScript/sorting/bfs.js) + + + +### Sorting + +- [QuickSort](https://github.com/aniketsharma00411/algorithmsUse/blob/master/JavaScript/sorting/QuickSort.js) + + + +### Unit Tests + +-- + + + +## Python + +

Python


+ +

+ +### Table of Contents + +- [Graph Algorithms](#graph) +- [Searching](#searching) +- [Sorting](#sorting) +- [Miscellaneous](#others) +- [Unit Tests](#unit-tests) + + + +### Graph Algorithms + +- [Dijkstras](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Python/Graph%20Algorithms/Dijkstras.py) + + +### Searching + +- [BinarySearch](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Python/Searching/binarySearch.py) +- [LinearSearch]() + + + +### Sorting + +- [BubbleSort](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Python/Sorting/bubbleSort.py) +- [Insertion Sort](https://github.com/aniketsharma00411/algorithmsUse/blob/insertion_sort/Python/Sorting/Insertion%20Sort.py) +- [Selection sort](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Python/Sorting/selection%20sort.py) + + + +### Miscellaneous + +- [Fibonacci_rec](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Python/Miscellaneous/Fibonacci_rec.py) +- [GreatestCommonDivisorEuclidean](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Python/Miscellaneous/GreatestCommonDivisorEuclidean.py) +- [PrimeUptoN](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Python/Miscellaneous/PrimeUptoN.py) +- [Duplicate_zeros](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Python/Miscellaneous/duplicate_zeros.py) +- [Next_president](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Python/Miscellaneous/next_president.py) +- [Singlelinkedlist](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Python/Miscellaneous/singlelinkedlist.py) +- [rotation of array]() + + +### Unit Tests + +- [Duplicate_zeros_test](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Python/Unit%20Tests/duplicate_zeros_test.py) +- [Next_president_test](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Python/Unit%20Tests/next_president_test.py) + + + +## Go + +

Go


+ +

+ +### Table of Contents + +- [Searching](#searching) +- [Sorting](#sorting) +- [Miscellaneous](#misc) +- [Unit Tests](#unit-tests) + + + +### Searching + +- [Binary_search](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Go/Searching/binary_search.go) + + + +### Sorting + +- [Bubble_sort](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Go/Sorting/bubble_sort.go) +- [Quicksort](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Go/Sorting/quicksort.go) + + + +### Miscellaneous + +- [Fibonacci_rec](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Go/Miscellaneous/fibonacci_rec.go) + + + +### Unit Tests + +-- + + + +## Swift + +

Swift


+ +

+ +### Table of Contents + +- [Searching](#searching) +- [Sorting](#sorting) +- [Unit Tests](#unit-tests) + + + +### Searching + +- [Binary_search](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Swift/Searching/binary_search.swift) + + + +### Sorting + +- [Selection_sort](https://github.com/aniketsharma00411/algorithmsUse/blob/master/Swift/Sorting/selection_sort.swift) + + + +### Unit Tests + +--