From 33aa8e319e6d3f50f595f374f0f021b1b8e598ab Mon Sep 17 00:00:00 2001 From: ekdnam Date: Sat, 3 Oct 2020 11:08:05 +0530 Subject: [PATCH 01/32] delete exe files --- .../Permute_By_Cylic.exe | Bin 52736 -> 0 bytes Sorting/Quicksort/Quicksort.exe | Bin 52224 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Randomized Algorithms/Armstrong's Permutation/Permute_By_Cylic.exe delete mode 100644 Sorting/Quicksort/Quicksort.exe diff --git a/Randomized Algorithms/Armstrong's Permutation/Permute_By_Cylic.exe b/Randomized Algorithms/Armstrong's Permutation/Permute_By_Cylic.exe deleted file mode 100644 index 9d55912c5d9b51e5824172ac200f4fb475620197..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52736 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 I|4|zFf7DF1$^ZZW diff --git a/Sorting/Quicksort/Quicksort.exe b/Sorting/Quicksort/Quicksort.exe deleted file mode 100644 index 39e5993fe99a5e167886ce7c51c2ba6467e9f377..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52224 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 Date: Sat, 3 Oct 2020 11:12:25 +0530 Subject: [PATCH 02/32] delete test --- Graph Theory/test | 1 - 1 file changed, 1 deletion(-) delete mode 100644 Graph Theory/test diff --git a/Graph Theory/test b/Graph Theory/test deleted file mode 100644 index 9daeafb..0000000 --- a/Graph Theory/test +++ /dev/null @@ -1 +0,0 @@ -test From 2b16609552d90947c44d944ba8725a4dca03fe2e Mon Sep 17 00:00:00 2001 From: ekdnam Date: Sat, 3 Oct 2020 11:15:10 +0530 Subject: [PATCH 03/32] delete redundant files --- Miscellaneous/Largest Prime Factor/test | 1 - Miscellaneous/Largest Product of a series/test | 1 - Miscellaneous/Luhn's Algorithm/test | 1 - Miscellaneous/Palindrome Product/test | 1 - Miscellaneous/test | 1 - .../Armstrong's Permutation/test | 1 - .../Permute In Place/Simple_Permute.exe | Bin 56832 -> 0 bytes Randomized Algorithms/Permute In Place/test | 1 - .../Permute_Without_Identity.exe | Bin 76288 -> 0 bytes .../Permute Without Identity/test | 1 - Randomized Algorithms/test | 1 - Searching/Binary Search/Binary_Search.exe | Bin 57856 -> 0 bytes Searching/Binary Search/test | 1 - Searching/Linear Search/test | 1 - Searching/test | 1 - Sorting/Bubble Sort/Bubble_Sort.exe | Bin 57856 -> 0 bytes Sorting/Bubble Sort/test | 1 - Sorting/Insertion Sort/Insertion_Sort.exe | Bin 57344 -> 0 bytes Sorting/Insertion Sort/test | 1 - Sorting/Merge Sort/Merge_Sort.exe | Bin 57856 -> 0 bytes Sorting/Merge Sort/test | 1 - Sorting/Quicksort/test | 1 - Sorting/Selection Sort/Selection_Sort.exe | Bin 56832 -> 0 bytes Sorting/Selection Sort/test | 1 - 24 files changed, 17 deletions(-) delete mode 100644 Miscellaneous/Largest Prime Factor/test delete mode 100644 Miscellaneous/Largest Product of a series/test delete mode 100644 Miscellaneous/Luhn's Algorithm/test delete mode 100644 Miscellaneous/Palindrome Product/test delete mode 100644 Miscellaneous/test delete mode 100644 Randomized Algorithms/Armstrong's Permutation/test delete mode 100644 Randomized Algorithms/Permute In Place/Simple_Permute.exe delete mode 100644 Randomized Algorithms/Permute In Place/test delete mode 100644 Randomized Algorithms/Permute Without Identity/Permute_Without_Identity.exe delete mode 100644 Randomized Algorithms/Permute Without Identity/test delete mode 100644 Randomized Algorithms/test delete mode 100644 Searching/Binary Search/Binary_Search.exe delete mode 100644 Searching/Binary Search/test delete mode 100644 Searching/Linear Search/test delete mode 100644 Searching/test delete mode 100644 Sorting/Bubble Sort/Bubble_Sort.exe delete mode 100644 Sorting/Bubble Sort/test delete mode 100644 Sorting/Insertion Sort/Insertion_Sort.exe delete mode 100644 Sorting/Insertion Sort/test delete mode 100644 Sorting/Merge Sort/Merge_Sort.exe delete mode 100644 Sorting/Merge Sort/test delete mode 100644 Sorting/Quicksort/test delete mode 100644 Sorting/Selection Sort/Selection_Sort.exe delete mode 100644 Sorting/Selection Sort/test diff --git a/Miscellaneous/Largest Prime Factor/test b/Miscellaneous/Largest Prime Factor/test deleted file mode 100644 index 9daeafb..0000000 --- a/Miscellaneous/Largest Prime Factor/test +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/Miscellaneous/Largest Product of a series/test b/Miscellaneous/Largest Product of a series/test deleted file mode 100644 index 9daeafb..0000000 --- a/Miscellaneous/Largest Product of a series/test +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/Miscellaneous/Luhn's Algorithm/test b/Miscellaneous/Luhn's Algorithm/test deleted file mode 100644 index 8b13789..0000000 --- a/Miscellaneous/Luhn's Algorithm/test +++ /dev/null @@ -1 +0,0 @@ - diff --git a/Miscellaneous/Palindrome Product/test b/Miscellaneous/Palindrome Product/test deleted file mode 100644 index 9daeafb..0000000 --- a/Miscellaneous/Palindrome Product/test +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/Miscellaneous/test b/Miscellaneous/test deleted file mode 100644 index 9daeafb..0000000 --- a/Miscellaneous/test +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/Randomized Algorithms/Armstrong's Permutation/test b/Randomized Algorithms/Armstrong's Permutation/test deleted file mode 100644 index 9daeafb..0000000 --- a/Randomized Algorithms/Armstrong's Permutation/test +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/Randomized Algorithms/Permute In Place/Simple_Permute.exe b/Randomized Algorithms/Permute In Place/Simple_Permute.exe deleted file mode 100644 index 97e93335b88eee05f90e455531f8978aa6afc247..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56832 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 diff --git a/Searching/Binary Search/test b/Searching/Binary Search/test deleted file mode 100644 index 8b13789..0000000 --- a/Searching/Binary Search/test +++ /dev/null @@ -1 +0,0 @@ - diff --git a/Searching/Linear Search/test b/Searching/Linear Search/test deleted file mode 100644 index 9daeafb..0000000 --- a/Searching/Linear Search/test +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/Searching/test b/Searching/test deleted file mode 100644 index 9daeafb..0000000 --- a/Searching/test +++ /dev/null @@ -1 +0,0 @@ -test diff --git a/Sorting/Bubble Sort/Bubble_Sort.exe b/Sorting/Bubble Sort/Bubble_Sort.exe deleted file mode 100644 index 718f89d340746e892fb53b9eb29e2cd5e9cb6857..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57856 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 t;~8BUCo+07_{LCr_$ Date: Sat, 3 Oct 2020 11:36:40 +0530 Subject: [PATCH 04/32] remove cpp files from python --- Sorting/Quicksort/Quicksort.cpp | 56 --------------------------------- Sorting/Quicksort/README.md | 2 +- Sorting/Quicksort/arrayio.cpp | 16 ---------- Sorting/Quicksort/arrayio.h | 9 ------ 4 files changed, 1 insertion(+), 82 deletions(-) delete mode 100644 Sorting/Quicksort/Quicksort.cpp delete mode 100644 Sorting/Quicksort/arrayio.cpp delete mode 100644 Sorting/Quicksort/arrayio.h diff --git a/Sorting/Quicksort/Quicksort.cpp b/Sorting/Quicksort/Quicksort.cpp deleted file mode 100644 index 2d765ef..0000000 --- a/Sorting/Quicksort/Quicksort.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include "arrayio.h" -#include -using namespace std; -using namespace std::chrono; -void swap(int *xp, int *yp) { - int temp = *xp; - *xp = *yp; - *yp = temp; -} - -int partition(int *arr, int p, int r) { - int x = arr[r]; - int i = p - 1; - int j = p; - for (int j = p; j <= r - 1; j++) { - if (arr[j] <= x) { - i += 1; - swap(&arr[i], &arr[j]); - } - } - swap(&arr[i + 1], &arr[r]); - return i + 1; -} - -void quicksort(int *arr, int p, int r) { - if (p < r) { - int q = partition(arr, p, r); - quicksort(arr, p, q - 1); - quicksort(arr, q + 1, r); - } -} - -int main() -{ - int *arr, n; - cout << "Elements: "; - cin >> n; - arr = new int[n]; - cout << "Enter elements: "; - get_input(arr, n); - - auto start = high_resolution_clock::now(); - quicksort(arr, 0, n - 1); - auto stop = high_resolution_clock::now(); - auto duration = duration_cast(stop - start); - cout << "Running time of algorithm is: " << duration.count() << " microseconds. " << endl; - - cout << "Sorted array is: " << endl; - display(arr, n); - delete[]arr; - - cout << "Press any key to exit "; - cin.get(); - cin.ignore(); -} diff --git a/Sorting/Quicksort/README.md b/Sorting/Quicksort/README.md index 226c568..bdb3802 100644 --- a/Sorting/Quicksort/README.md +++ b/Sorting/Quicksort/README.md @@ -1 +1 @@ -# Quicksort +# Quicksort - Python diff --git a/Sorting/Quicksort/arrayio.cpp b/Sorting/Quicksort/arrayio.cpp deleted file mode 100644 index 61f7c4b..0000000 --- a/Sorting/Quicksort/arrayio.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "arrayio.h" -#include -using namespace std; - -void get_input(int *arr, int n) { - for (int i = 0; i < n; i++) { - cin >> arr[i]; - } -} - -void display(int *arr, int n) { - for (int i = 0; i < n; i++) { - cout << arr[i] << " "; - } - cout << endl; -} \ No newline at end of file diff --git a/Sorting/Quicksort/arrayio.h b/Sorting/Quicksort/arrayio.h deleted file mode 100644 index 45f6508..0000000 --- a/Sorting/Quicksort/arrayio.h +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once -#ifndef _ARRAYIO_H -#define _ARRAYIO_H - -void get_input(int *arr, int n); - -void display(int *arr, int n); - -#endif From 6799b08166963727ba77b652500117540da9d8e1 Mon Sep 17 00:00:00 2001 From: ekdnam Date: Sat, 3 Oct 2020 11:39:13 +0530 Subject: [PATCH 05/32] add readme.md for python --- Sorting/Merge Sort/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sorting/Merge Sort/README.md b/Sorting/Merge Sort/README.md index 0e5fe54..7174a51 100644 --- a/Sorting/Merge Sort/README.md +++ b/Sorting/Merge Sort/README.md @@ -1,3 +1,3 @@ -# Merge Sort +# Merge Sort - Python -- Aditya Mandke + \ No newline at end of file From 15b80da47d19962ad59e4013131e47b9c9d287de Mon Sep 17 00:00:00 2001 From: ekdnam Date: Sat, 3 Oct 2020 11:47:37 +0530 Subject: [PATCH 06/32] Create CONTRIBUTING.md --- CONTRIBUTING.md | 59 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..16e356d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,59 @@ +# How to Collaborate: + +1. Fork the repository to your own GitHub account. + +2. Clone the repository to your local machine +``` +$ git clone "https://www.github.com/{Username}/Algorithms.git" +``` +where username is your GitHub account username. + +3. Create a branch where you can do your local work. +Never work on **master** branch as we do not allow master commits except by admins. +``` +$ git branch {branchname} +$ git checkout branchname +``` + +4. Do your work and stage your changes. +``` +$ git add +``` + +5. Commit you changes with a commit message containing your name, file(s) worked upon, changes added. +``` +$ git commit -m "Name| files| Changes" +``` + +6. Push changes to your forked repository +``` +$ git push -u origin branchname +``` +7. Create a pull request to the upstream repository. + +# Synchronize forked repository with Upstream repository + +1. Create upstream as our repository +``` +$ git remote add upstream "https://www.github.com/ekdnam/Algorithms" +``` + +2. Fetch upstream changes in local machine +``` +$ git fetch upstream +``` + +3. Switch to master branch +``` +$ git checkout master +``` + +4. Merge changes in local machine +``` +$ git merge upstream/master +``` + +5. Push changes to your forked GitHub repository +``` +$ git push -f origin master +``` From e826e8be19e1ac6389dc7d4359f579624b8f1c1f Mon Sep 17 00:00:00 2001 From: ekdnam Date: Sat, 3 Oct 2020 12:34:24 +0530 Subject: [PATCH 07/32] add images --- README.md | 27 +++++++++++++++++++++++++-- images/algorithms.jpg | Bin 0 -> 43062 bytes 2 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 images/algorithms.jpg diff --git a/README.md b/README.md index df83d59..78f3003 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,27 @@ # Algorithms -Simple algorithms -- Aditya Mandke +![Algorithms](./images/algorithms.jpg) + +An attempt to aggregate all the various algorithms. + +## What you will gain by contributing here? + +- How to contribute to open source +- Version Control +- Since we have quite a few branches, you will learn how to work with branches +- Overall, a great learning experience for y'all! + +## Branches + +| Branch | Language | +| ----------- | ----------- | +| master | C++ | +| python | Python | +| java | Java | + +## How to contribute? + +Please check [CONTRIBUTING.md](./CONTRIBUTING.md) for further instructions. + + +**If you want, give us a star ⭐!** diff --git a/images/algorithms.jpg b/images/algorithms.jpg new file mode 100644 index 0000000000000000000000000000000000000000..880ee97fc774becd9ce01df59deabd1cc1e74ed5 GIT binary patch literal 43062 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 Date: Sat, 3 Oct 2020 14:08:58 +0530 Subject: [PATCH 08/32] create template for python branch --- Graph Theory/A Star/README.md | 0 Graph Theory/Bellman Ford/README.md | 0 Graph Theory/DFS/README.md | 0 Graph Theory/Dijkstra Algorithm/README.md | 0 Graph Theory/README.md | 0 Searching/Binary Search/Binary_Search.cpp | 97 ----------------- Searching/Binary Search/arrayio.cpp | 16 --- Searching/Binary Search/arrayio.h | 9 -- Sorting/Bubble Sort/Bubble_Sort.cpp | 125 ---------------------- Sorting/Insertion Sort/Insertion_Sort.cpp | 83 -------------- Sorting/Merge Sort/Merge_Sort.cpp | 99 ----------------- Sorting/Selection Sort/Selection_Sort.cpp | 77 ------------- 12 files changed, 506 deletions(-) create mode 100644 Graph Theory/A Star/README.md create mode 100644 Graph Theory/Bellman Ford/README.md create mode 100644 Graph Theory/DFS/README.md create mode 100644 Graph Theory/Dijkstra Algorithm/README.md create mode 100644 Graph Theory/README.md delete mode 100644 Searching/Binary Search/Binary_Search.cpp delete mode 100644 Searching/Binary Search/arrayio.cpp delete mode 100644 Searching/Binary Search/arrayio.h delete mode 100644 Sorting/Bubble Sort/Bubble_Sort.cpp delete mode 100644 Sorting/Insertion Sort/Insertion_Sort.cpp delete mode 100644 Sorting/Merge Sort/Merge_Sort.cpp delete mode 100644 Sorting/Selection Sort/Selection_Sort.cpp diff --git a/Graph Theory/A Star/README.md b/Graph Theory/A Star/README.md new file mode 100644 index 0000000..e69de29 diff --git a/Graph Theory/Bellman Ford/README.md b/Graph Theory/Bellman Ford/README.md new file mode 100644 index 0000000..e69de29 diff --git a/Graph Theory/DFS/README.md b/Graph Theory/DFS/README.md new file mode 100644 index 0000000..e69de29 diff --git a/Graph Theory/Dijkstra Algorithm/README.md b/Graph Theory/Dijkstra Algorithm/README.md new file mode 100644 index 0000000..e69de29 diff --git a/Graph Theory/README.md b/Graph Theory/README.md new file mode 100644 index 0000000..e69de29 diff --git a/Searching/Binary Search/Binary_Search.cpp b/Searching/Binary Search/Binary_Search.cpp deleted file mode 100644 index 358a5d2..0000000 --- a/Searching/Binary Search/Binary_Search.cpp +++ /dev/null @@ -1,97 +0,0 @@ -#include -#include "arrayio.h" -#include - - -using namespace std; -using namespace std::chrono; - -void swap(int *xp, int *yp) { - int temp = *xp; - *xp = *yp; - *yp = temp; -} - -int partition(int *arr, int p, int r) { - int x = arr[r]; - int i = p - 1; - int j = p; - for (int j = p; j <= r - 1; j++) { - if (arr[j] <= x) { - i += 1; - swap(&arr[i], &arr[j]); - } - } - swap(&arr[i + 1], &arr[r]); - return i + 1; -} - -void quicksort(int *arr, int p, int r) { - if (p < r) { - int q = partition(arr, p, r); - quicksort(arr, p, q - 1); - quicksort(arr, q + 1, r); - } -} - -int binary_search(int *arr, int low, int high, int key) { - - if (high >= low) { - int mid = low + (high - low) / 2; - if (key == arr[mid]) { - return mid; - } - else if (arr[mid] > key) { - return binary_search(arr, low, mid - 1, key); - } - else{ - return binary_search(arr, mid + 1, high, key); - } - } - return -1; -} - - -int main() -{ - int n, *arr, key; - cout << "Number of elements: "; - cin >> n; - - arr = new int[n]; - - cout << "Enter elements: "; - get_input(arr, n); - - cout << "Enter element to be found: "; - cin >> key; - - quicksort(arr, 0, n-1); - auto start = high_resolution_clock::now(); - int index = binary_search(arr, 0, n-1, key); - auto stop = high_resolution_clock::now(); - auto duration = duration_cast(stop - start); - - if (index == -1) { - cout << "Element not found." << endl; - } - else { - cout << "Element found at position: " << index << endl; - } - cout << "Running time of binary search is: " << duration.count() << " microseconds." << endl; - - cout << "\nPress anny key to exit "; - cin.get(); - cin.ignore(); -} - -// Run program: Ctrl + F5 or Debug > Start Without Debugging menu -// Debug program: F5 or Debug > Start Debugging menu - -// Tips for Getting Started: -// 1. Use the Solution Explorer window to add/manage files -// 2. Use the Team Explorer window to connect to source control -// 3. Use the Output window to see build output and other messages -// 4. Use the Error List window to view errors -// 5. Go to Project > Add New Item to create new code files, or Project > Add Existing Item to add existing code files to the project -// 6. In the future, to open this project again, go to File > Open > Project and select the .sln file diff --git a/Searching/Binary Search/arrayio.cpp b/Searching/Binary Search/arrayio.cpp deleted file mode 100644 index 61f7c4b..0000000 --- a/Searching/Binary Search/arrayio.cpp +++ /dev/null @@ -1,16 +0,0 @@ -#include "arrayio.h" -#include -using namespace std; - -void get_input(int *arr, int n) { - for (int i = 0; i < n; i++) { - cin >> arr[i]; - } -} - -void display(int *arr, int n) { - for (int i = 0; i < n; i++) { - cout << arr[i] << " "; - } - cout << endl; -} \ No newline at end of file diff --git a/Searching/Binary Search/arrayio.h b/Searching/Binary Search/arrayio.h deleted file mode 100644 index 285c744..0000000 --- a/Searching/Binary Search/arrayio.h +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once -#ifndef _AARAYIO_H -#define _ARRAYIO_H - -void get_input(int *arr, int n); - -void display(int *arr, int n); - -#endif diff --git a/Sorting/Bubble Sort/Bubble_Sort.cpp b/Sorting/Bubble Sort/Bubble_Sort.cpp deleted file mode 100644 index 262e125..0000000 --- a/Sorting/Bubble Sort/Bubble_Sort.cpp +++ /dev/null @@ -1,125 +0,0 @@ -#include -#include -using namespace std; -using namespace std::chrono; - -/* -Bubblesort is a popular sorting algorithm. It works by repeatedly swapping adjacent elements -that are out of order. - -BUBBLESORT(A) -1 for i ← 1 to length[A] -2 do for j ← length[A] downto i + 1 -3 do if A[j] < A[j - 1] -4 then exchange A[j] ↔ A[j - 1] - -Worst case time complexity: O(n^2) when the list is not pre-sorted -Average case time complexity: O(n^2) -Best case time complexity: O(n) list is pre sorted - -Space complexity: O(1) - -*/ - - -void bubble_sort(int *arr, int n) { - int i, j; - for (i = 0; i < n - 1; i++) { - for (j = 0; j < n - i - 1 ; j++) { - if (arr[j] > arr[j + 1]) { - int temp = arr[j]; - arr[j] = arr[j+1]; - arr[j+1] = temp; - } - } - } -} - -//If the array gets sorted in any iteration before the n^2 th iteration, the sorting process is halted -void optimized_bubble_sort(int *arr, int n) { - int i, j; - for (i = 0; i < n; i++) { - //initialize flag to monitor swapping process - bool flag = 0; - for (j = 0; j > n - i - 1; j++) { - if (arr[j] > arr[j + 1]) { - // set flag to 1 if the swapping condition is true anywhere in the inner for loop - flag = 1; - int temp = arr[j]; - arr[j] = arr[j + 1]; - arr[j + 1] = temp; - } - } - // if the flag is still not set that means the array is sorted and thus there is no need to continue the sorting process - if (!flag) { - break; - } - } -} - - -void get_input(int *arr, int n) { - for (int i = 0; i < n; i++) { - cin >> arr[i]; - } -} - -void display(int *arr, int n) { - for (int i = 0; i < n; i++) { - cout << arr[i] << " "; - } -} - -int main() -{ - int *arr, n; - cout << "Number of elements: "; - cin >> n; - arr = new int[n]; - - //get the elements of the array - cout << "Elements of array: " << endl; - get_input(arr, n); - - //perform bubble sort - auto start = high_resolution_clock::now(); - bubble_sort(arr, n); - auto stop = high_resolution_clock::now(); - auto duration = duration_cast(stop - start); - cout << "Running time: " << duration.count() << " microseconds." <(stop2 - start2); - cout << "\nRunning time for already sorted list and normal bubble sort: " << duration2.count() << " microseconds" << endl; - - auto start3 = high_resolution_clock::now(); - optimized_bubble_sort(arr, n); - auto stop3 = high_resolution_clock::now(); - auto duration3 = duration_cast(stop3 - start3); - cout << "\nRunning time for already sorted list and optimized bubble sort: " << duration3.count() << " microseconds" << endl; - - cout << "Enter values again, first number of elements: " << endl; - cin >> n; - cout << "Enter values: " << endl; - get_input(arr, n); - - auto start4 = high_resolution_clock::now(); - optimized_bubble_sort(arr, n); - auto stop4 = high_resolution_clock::now(); - auto duration4 = duration_cast(stop4 - start4); - cout << "\nRunning time for optimized bubble sort: " << duration4.count() << " microseconds" << endl; - - cout << "Press any key to exit. "; - cin.get(); - cin.ignore(); - -} - diff --git a/Sorting/Insertion Sort/Insertion_Sort.cpp b/Sorting/Insertion Sort/Insertion_Sort.cpp deleted file mode 100644 index 2e3c5ad..0000000 --- a/Sorting/Insertion Sort/Insertion_Sort.cpp +++ /dev/null @@ -1,83 +0,0 @@ -#include -#include -using namespace std; -using namespace std::chrono; - -/* - -input: a sequence of n numbers - a_0, a_1, ... a_(n-1) -output: a reordering of numbers where they are arranged in ascending order - -Pseudo code: -1 for j ← 2 to length[A] -2 do key ← A[j] -3 Insert A[j] into the sorted sequence A[1  j - 1]. -4 i ← j - 1 -5 while i > 0 and A[i] > key -6 do A[i + 1] ← A[i] -7 i ← i - 1 -8 A[i + 1] ← key - -*/ - -/* - 1> Worst case: O(n^2) time complexity and swaps - 2> Best case: O(n) time complexity and O(1) swaps - 3> Average case: O(n^2) time complexity and swaps - - Space complexity: Worst case - O(n) -*/ - -void insertion_sort(int *arr, int n) { - int iter = 2, key = 0, i; - for (iter = 1; iter < n; iter++) { - key = arr[iter]; - i = iter - 1; - while (i > -1 && arr[i] > key) { - arr[i + 1] = arr[i]; - i = i - 1; - } - arr[i + 1] = key; - } -} - -void input(int *arr, int n) { - cout << "Elements: "; - for (int i = 0; i < n; i++) { - cin >> arr[i]; - } -} - -void display(int *arr, int n) { - for (int i = 0; i < n; i++) { - cout << arr[i] << " "; - } -} - -int main() -{ - int n, *arr; - cout << "Number of elements: "; - cin >> n; - arr = new int[n]; - - input(arr, n); - - auto start = high_resolution_clock::now(); - insertion_sort(arr, n); - auto stop = high_resolution_clock::now(); - auto duration1 = duration_cast(stop - start); - cout << "Running time: " << duration1.count() << " microseconds" << endl; - - - display(arr, n); - - start = high_resolution_clock::now(); - insertion_sort(arr, n); - stop = high_resolution_clock::now(); - auto duration2 = duration_cast(stop - start); - cout << "\n\nRunning time: " << duration2.count() << " microseconds" << endl; - cout << "Press any key to exit. "; - cin.get(); - cin.ignore(); -} diff --git a/Sorting/Merge Sort/Merge_Sort.cpp b/Sorting/Merge Sort/Merge_Sort.cpp deleted file mode 100644 index a408a94..0000000 --- a/Sorting/Merge Sort/Merge_Sort.cpp +++ /dev/null @@ -1,99 +0,0 @@ -#include -#include - -using namespace std; -using namespace std::chrono; -# define MAX 100000 -void get_array(int *arr, int n) { - cout << "Elements: " << endl; - for (int i = 0; i < n; i++) { - cin >> arr[i]; - } -} - -void merge_array(int *arr, int p, int q, int r) { - int n1 = q - p + 1; - int n2 = r - q; - int *L = new int[n1], *R = new int[n2]; - int i = 0, j = 0; - while (i < n1) { - L[i] = arr[p + i]; - i++; - } - while (j < n2) { - R[j] = arr[q + j + 1]; - j++; - } - //L[n1] = MAX; - //R[n2] = MAX; - i = 0; j = 0; - int k = p; - while (i < n1 && j < n2) { - if (L[i] <= R[j]) { - arr[k] = L[i]; - i++; - } - else { - arr[k] = R[j]; - j++; - } - k++; - } - - while (i < n1) { - arr[k] = L[i]; - i++; k++; - } - while (j < n2) { - arr[k] = R[j]; - j++; k++; - } - delete[]L; - delete[]R; -} - - - -void merge_sort(int *arr, int l, int r) { - if (l < r) { - int m = (l+r)/ 2; - - merge_sort(arr, l, m); - - merge_sort(arr, m + 1, r); - - merge_array(arr, l, m, r); - } -} - - -void display_array(int *arr, int n) { - for (int i = 0; i < n; i++) { - cout << arr[i] << " "; - } -} - -int main() -{ - int n, *arr; - cout << "Number of elements: "; - cin >> n; - arr = new int[n]; - - get_array(arr, n); - - auto start = high_resolution_clock::now(); - merge_sort(arr, 0, n - 1); - auto stop = high_resolution_clock::now(); - auto duration = duration_cast(stop - start); - cout << "\nRunning time: " << duration.count() << " microseconds" << endl; - - display_array(arr, n); - - delete[]arr; - - cout << "Press any key to exit. "; - cin.get(); - cin.ignore(); -} - diff --git a/Sorting/Selection Sort/Selection_Sort.cpp b/Sorting/Selection Sort/Selection_Sort.cpp deleted file mode 100644 index ee3ad98..0000000 --- a/Sorting/Selection Sort/Selection_Sort.cpp +++ /dev/null @@ -1,77 +0,0 @@ -#include -#include - -using namespace std; -using namespace std::chrono; - -/* -The selection sort algorithm sorts an array by repeatedly finding the minimum element (considering ascending order) -from unsorted part and putting it at the beginning. The algorithm maintains two subarrays in a given array. - -1) The subarray which is already sorted. -2) Remaining subarray which is unsorted. - -In every iteration of selection sort, the minimum element (considering ascending order) -from the unsorted subarray is picked and moved to the sorted subarray. -*/ - -/* - Begin to iterate through the array from index 0 to n - 1, iterator = i - find the smallest element in this range, let the index of element be min_ind - swap elements at indices i, and min_ind - continue -*/ - -void selection_sort(int *arr, int n) { - int i, j, min_ind = 0, ind = 0; - for (i = 0; i < n; i++) { - min_ind = arr[i]; - ind = i; - for (j = i + 1; j < n; j++) { - if (min_ind > arr[j]) { - min_ind = arr[j]; - ind = j; - } - } - int temp = arr[i]; - arr[i] = min_ind; - arr[ind] = temp; - } -} - -void input(int *arr, int n) { - cout << "Elements: "; - for (int i = 0; i < n; i++) { - cin >> arr[i]; - } -} - -void display(int *arr, int n) { - for (int i = 0; i < n; i++) { - cout << arr[i] << " "; - } -} - -int main() -{ - int *arr, n; - cout << "Number of elements: " << endl; - cin >> n; - - arr = new int[n]; - - input(arr, n); - - auto start = high_resolution_clock::now(); - selection_sort(arr, n); - auto stop = high_resolution_clock::now(); - auto duration = duration_cast(stop - start); - cout <<"\nRunning time of selection sort is: " << duration.count() <<" microseconds" << endl; - - cout << "\nSorted array is: " << endl; - display(arr, n); - - cout << "Press any key to exit. "; - cin.get(); - cin.ignore(); -} \ No newline at end of file From 70da6d18bb539d36401d74080f86e1471a78b18f Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sat, 3 Oct 2020 14:44:13 +0530 Subject: [PATCH 09/32] Create README.md --- Searching/Linear Search/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Searching/Linear Search/README.md diff --git a/Searching/Linear Search/README.md b/Searching/Linear Search/README.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Searching/Linear Search/README.md @@ -0,0 +1 @@ + From 6997f5d585747fcc2c7218194c9c7aaf7013d8cf Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sat, 3 Oct 2020 14:44:33 +0530 Subject: [PATCH 10/32] Create README.md --- Searching/Fibonacci Search/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 Searching/Fibonacci Search/README.md diff --git a/Searching/Fibonacci Search/README.md b/Searching/Fibonacci Search/README.md new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Searching/Fibonacci Search/README.md @@ -0,0 +1 @@ + From b863e0aa356ccf0cbdbf02ef77fdb1deb0b79327 Mon Sep 17 00:00:00 2001 From: Clement Date: Sat, 3 Oct 2020 14:54:56 +0530 Subject: [PATCH 11/32] added Quick sort in C --- Sorting/Quicksort/quicksort.c | 48 +++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 Sorting/Quicksort/quicksort.c diff --git a/Sorting/Quicksort/quicksort.c b/Sorting/Quicksort/quicksort.c new file mode 100644 index 0000000..e14c3e2 --- /dev/null +++ b/Sorting/Quicksort/quicksort.c @@ -0,0 +1,48 @@ +#include +void quicksort(int number[25],int first,int last){ + int i, j, pivot, temp; + + if(firstnumber[pivot]) + j--; + if(i Date: Sat, 3 Oct 2020 15:05:41 +0530 Subject: [PATCH 12/32] added Linear Search in C --- Searching/Linear Search/linearSearch.c | 30 ++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 Searching/Linear Search/linearSearch.c diff --git a/Searching/Linear Search/linearSearch.c b/Searching/Linear Search/linearSearch.c new file mode 100644 index 0000000..637900e --- /dev/null +++ b/Searching/Linear Search/linearSearch.c @@ -0,0 +1,30 @@ +#include + +int search(int arr[], int n, int x) +{ + int i; + for (i = 0; i < n; i++) + if (arr[i] == x) + return i; + return -1; +} + +int main(void) +{ + printf("Enter size of array"); + int n,x,i; + scanf("%d",&n); + int arr[n]; + printf("Enter elements of array"); + for(i=0;i Date: Sat, 3 Oct 2020 14:42:54 +0500 Subject: [PATCH 13/32] Added linear search algo --- Searching/Linear Search/linearSearch.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 Searching/Linear Search/linearSearch.c diff --git a/Searching/Linear Search/linearSearch.c b/Searching/Linear Search/linearSearch.c new file mode 100644 index 0000000..904b6f5 --- /dev/null +++ b/Searching/Linear Search/linearSearch.c @@ -0,0 +1,22 @@ +#include + +int search(int arr[], int n, int x) +{ + int i; + for (i = 0; i < n; i++) + if (arr[i] == x) + return i; + return -1; +} + +int main(void) +{ + int arr[] = { 2, 3, 4, 10, 40 }; + int x = 10; + int n = sizeof(arr) / sizeof(arr[0]); + int result = search(arr, n, x); + (result == -1) ? printf("Element is not present in array") + : printf("Element is present at index %d", + result); + return 0; +} From a5d868b15019bd582edff72804fa840318504371 Mon Sep 17 00:00:00 2001 From: avnishsingh516 <52257822+avnishsingh516@users.noreply.github.com> Date: Sat, 3 Oct 2020 15:18:10 +0530 Subject: [PATCH 14/32] Create fibonnaci search.c --- Searching/Fibonacci Search/fibonnaci search.c | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 Searching/Fibonacci Search/fibonnaci search.c diff --git a/Searching/Fibonacci Search/fibonnaci search.c b/Searching/Fibonacci Search/fibonnaci search.c new file mode 100644 index 0000000..7866665 --- /dev/null +++ b/Searching/Fibonacci Search/fibonnaci search.c @@ -0,0 +1,75 @@ +// C program for Fibonacci Search +#include + +// Utility function to find minimum of two elements +int min(int x, int y) { return (x<=y)? x : y; } + +/* Returns index of x if present, else returns -1 */ +int fibMonaccianSearch(int arr[], int x, int n) +{ + /* Initialize fibonacci numbers */ + int fibMMm2 = 0; // (m-2)'th Fibonacci No. + int fibMMm1 = 1; // (m-1)'th Fibonacci No. + int fibM = fibMMm2 + fibMMm1; // m'th Fibonacci + + /* fibM is going to store the smallest Fibonacci + Number greater than or equal to n */ + while (fibM < n) + { + fibMMm2 = fibMMm1; + fibMMm1 = fibM; + fibM = fibMMm2 + fibMMm1; + } + + // Marks the eliminated range from front + int offset = -1; + + /* while there are elements to be inspected. Note that + we compare arr[fibMm2] with x. When fibM becomes 1, + fibMm2 becomes 0 */ + while (fibM > 1) + { + // Check if fibMm2 is a valid location + int i = min(offset+fibMMm2, n-1); + + /* If x is greater than the value at index fibMm2, + cut the subarray array from offset to i */ + if (arr[i] < x) + { + fibM = fibMMm1; + fibMMm1 = fibMMm2; + fibMMm2 = fibM - fibMMm1; + offset = i; + } + + /* If x is greater than the value at index fibMm2, + cut the subarray after i+1 */ + else if (arr[i] > x) + { + fibM = fibMMm2; + fibMMm1 = fibMMm1 - fibMMm2; + fibMMm2 = fibM - fibMMm1; + } + + /* element found. return index */ + else return i; + } + + /* comparing the last element with x */ + if(fibMMm1 && arr[offset+1]==x)return offset+1; + + /*element not found. return -1 */ + return -1; +} + +/* driver function */ +int main(void) +{ + int arr[] = {10, 22, 35, 40, 45, 50, 80, 82, + 85, 90, 100}; + int n = sizeof(arr)/sizeof(arr[0]); + int x = 85; + printf("Found at index: %d", + fibMonaccianSearch(arr, x, n)); + return 0; +} From 700f91ef95e54e0f0eb6c0f859173ce8fc395cc1 Mon Sep 17 00:00:00 2001 From: avnishsingh516 <52257822+avnishsingh516@users.noreply.github.com> Date: Sat, 3 Oct 2020 15:24:24 +0530 Subject: [PATCH 15/32] Create mergesort.c --- Sorting/Merge Sort/mergesort.c | 97 ++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 Sorting/Merge Sort/mergesort.c diff --git a/Sorting/Merge Sort/mergesort.c b/Sorting/Merge Sort/mergesort.c new file mode 100644 index 0000000..cfa20ad --- /dev/null +++ b/Sorting/Merge Sort/mergesort.c @@ -0,0 +1,97 @@ +/* C program for Merge Sort */ +#include +#include + +// Merges two subarrays of arr[]. +// First subarray is arr[l..m] +// Second subarray is arr[m+1..r] +void merge(int arr[], int l, int m, int r) +{ + int i, j, k; + int n1 = m - l + 1; + int n2 = r - m; + + /* create temp arrays */ + int L[n1], R[n2]; + + /* Copy data to temp arrays L[] and R[] */ + for (i = 0; i < n1; i++) + L[i] = arr[l + i]; + for (j = 0; j < n2; j++) + R[j] = arr[m + 1 + j]; + + /* Merge the temp arrays back into arr[l..r]*/ + i = 0; // Initial index of first subarray + j = 0; // Initial index of second subarray + k = l; // Initial index of merged subarray + while (i < n1 && j < n2) { + if (L[i] <= R[j]) { + arr[k] = L[i]; + i++; + } + else { + arr[k] = R[j]; + j++; + } + k++; + } + + /* Copy the remaining elements of L[], if there + are any */ + while (i < n1) { + arr[k] = L[i]; + i++; + k++; + } + + /* Copy the remaining elements of R[], if there + are any */ + while (j < n2) { + arr[k] = R[j]; + j++; + k++; + } +} + +/* l is for left index and r is right index of the + sub-array of arr to be sorted */ +void mergeSort(int arr[], int l, int r) +{ + if (l < r) { + // Same as (l+r)/2, but avoids overflow for + // large l and h + int m = l + (r - l) / 2; + + // Sort first and second halves + mergeSort(arr, l, m); + mergeSort(arr, m + 1, r); + + merge(arr, l, m, r); + } +} + +/* UTILITY FUNCTIONS */ +/* Function to print an array */ +void printArray(int A[], int size) +{ + int i; + for (i = 0; i < size; i++) + printf("%d ", A[i]); + printf("\n"); +} + +/* Driver program to test above functions */ +int main() +{ + int arr[] = { 12, 11, 13, 5, 6, 7 }; + int arr_size = sizeof(arr) / sizeof(arr[0]); + + printf("Given array is \n"); + printArray(arr, arr_size); + + mergeSort(arr, 0, arr_size - 1); + + printf("\nSorted array is \n"); + printArray(arr, arr_size); + return 0; +} From 465ac1deda6faea7795fea3c7c85aedae1ff8fab Mon Sep 17 00:00:00 2001 From: PritiShaw Date: Sat, 3 Oct 2020 17:24:33 +0530 Subject: [PATCH 16/32] PritiShaw|selectionSort.c|Add Seclection Sort --- Sorting/Selection Sort/selectionSort.c | 49 ++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Sorting/Selection Sort/selectionSort.c diff --git a/Sorting/Selection Sort/selectionSort.c b/Sorting/Selection Sort/selectionSort.c new file mode 100644 index 0000000..2e4dec5 --- /dev/null +++ b/Sorting/Selection Sort/selectionSort.c @@ -0,0 +1,49 @@ +#include +#include + +void swap(int *xp, int *yp){ + int temp = *xp; + *xp = *yp; + *yp = temp; +} + +void selectionSort(int *arr, int n){ + int i, j, min_idx; + for (i = 0; i < n-1; i++) { + min_idx = i; + for (j = i+1; j < n; j++){ + if (arr[j] < arr[min_idx]) + min_idx = j; + } + swap(&arr[min_idx], &arr[i]); + } +} + +void printArray(int *arr, int size){ + int i; + for (i=0; i < size; i++) + printf("%d ", arr[i]); + printf("\n"); +} + +void input(int *arr, int n){ + printf("Elements: "); + for (int i=0; i Date: Sat, 3 Oct 2020 17:45:34 +0530 Subject: [PATCH 17/32] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 037d1af..78f3003 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,7 @@ ![Algorithms](./images/algorithms.jpg) +An attempt to aggregate all the various algorithms. ## What you will gain by contributing here? From 664ff771ec769725aad2d5b1c9b6ff91474ce0ba Mon Sep 17 00:00:00 2001 From: avnishsingh516 <52257822+avnishsingh516@users.noreply.github.com> Date: Sat, 3 Oct 2020 17:49:53 +0530 Subject: [PATCH 18/32] Update and rename fibonnaci search.c to fibonacciSearch.c --- .../{fibonnaci search.c => fibonacciSearch.c} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename Searching/Fibonacci Search/{fibonnaci search.c => fibonacciSearch.c} (95%) diff --git a/Searching/Fibonacci Search/fibonnaci search.c b/Searching/Fibonacci Search/fibonacciSearch.c similarity index 95% rename from Searching/Fibonacci Search/fibonnaci search.c rename to Searching/Fibonacci Search/fibonacciSearch.c index 7866665..0ddfc0e 100644 --- a/Searching/Fibonacci Search/fibonnaci search.c +++ b/Searching/Fibonacci Search/fibonacciSearch.c @@ -5,7 +5,7 @@ int min(int x, int y) { return (x<=y)? x : y; } /* Returns index of x if present, else returns -1 */ -int fibMonaccianSearch(int arr[], int x, int n) +int fibonacciSearch(int arr[], int x, int n) { /* Initialize fibonacci numbers */ int fibMMm2 = 0; // (m-2)'th Fibonacci No. @@ -70,6 +70,6 @@ int main(void) int n = sizeof(arr)/sizeof(arr[0]); int x = 85; printf("Found at index: %d", - fibMonaccianSearch(arr, x, n)); + fibonacciSearch(arr, x, n)); return 0; } From c097d5d8778361d95074cdaf63984ccbcc66397e Mon Sep 17 00:00:00 2001 From: avnishsingh516 <52257822+avnishsingh516@users.noreply.github.com> Date: Sat, 3 Oct 2020 18:13:12 +0530 Subject: [PATCH 19/32] Update mergesort.c make the input dynamic --- Sorting/Merge Sort/mergesort.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Sorting/Merge Sort/mergesort.c b/Sorting/Merge Sort/mergesort.c index cfa20ad..dac0382 100644 --- a/Sorting/Merge Sort/mergesort.c +++ b/Sorting/Merge Sort/mergesort.c @@ -83,8 +83,15 @@ void printArray(int A[], int size) /* Driver program to test above functions */ int main() { - int arr[] = { 12, 11, 13, 5, 6, 7 }; - int arr_size = sizeof(arr) / sizeof(arr[0]); + + int arr_size, i; + scanf("%d ",&arr_size); + + int arr[arr_size]; + + for(i=0; i Date: Sat, 3 Oct 2020 18:47:14 +0530 Subject: [PATCH 20/32] added newline and spaces --- Searching/Linear Search/linearSearch.c | 38 +++++++++-------------- Sorting/Quicksort/quicksort.c | 43 +++++++++++++++++--------- 2 files changed, 44 insertions(+), 37 deletions(-) diff --git a/Searching/Linear Search/linearSearch.c b/Searching/Linear Search/linearSearch.c index 637900e..bc3955f 100644 --- a/Searching/Linear Search/linearSearch.c +++ b/Searching/Linear Search/linearSearch.c @@ -1,30 +1,22 @@ #include - + int search(int arr[], int n, int x) { - int i; - for (i = 0; i < n; i++) - if (arr[i] == x) - return i; - return -1; + int i; + for (i = 0; i < n; i++) + if (arr[i] == x) + return i; + return -1; } - + int main(void) { - printf("Enter size of array"); - int n,x,i; - scanf("%d",&n); - int arr[n]; - printf("Enter elements of array"); - for(i=0;i void quicksort(int number[25],int first,int last){ + int i, j, pivot, temp; if(firstnumber[pivot]) + while( number[j] > number[pivot] ) j--; - if(i Date: Sat, 3 Oct 2020 18:56:45 +0530 Subject: [PATCH 21/32] Update fibonacciSearch.c made the input dynamic --- Searching/Fibonacci Search/fibonacciSearch.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/Searching/Fibonacci Search/fibonacciSearch.c b/Searching/Fibonacci Search/fibonacciSearch.c index 0ddfc0e..7115f30 100644 --- a/Searching/Fibonacci Search/fibonacciSearch.c +++ b/Searching/Fibonacci Search/fibonacciSearch.c @@ -65,10 +65,14 @@ int fibonacciSearch(int arr[], int x, int n) /* driver function */ int main(void) { - int arr[] = {10, 22, 35, 40, 45, 50, 80, 82, - 85, 90, 100}; - int n = sizeof(arr)/sizeof(arr[0]); - int x = 85; + int n, x, i; + scanf("%d %d",&n,&x); + + int arr[n]; + for(i=0; i Date: Sat, 3 Oct 2020 21:31:01 +0530 Subject: [PATCH 22/32] match the upstream repo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 78f3003..d7a1c21 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![Algorithms](./images/algorithms.jpg) -An attempt to aggregate all the various algorithms. +An attempt to aggregate all the various algorithms in CS. ## What you will gain by contributing here? From 13206a324838734994c75ed27a7e93c3357e73f9 Mon Sep 17 00:00:00 2001 From: Arkadyuti Date: Sat, 3 Oct 2020 21:37:25 +0530 Subject: [PATCH 23/32] Added file for binary search --- Searching/Binary Search/binarySearch.c | 34 ++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 Searching/Binary Search/binarySearch.c diff --git a/Searching/Binary Search/binarySearch.c b/Searching/Binary Search/binarySearch.c new file mode 100644 index 0000000..64f4fcb --- /dev/null +++ b/Searching/Binary Search/binarySearch.c @@ -0,0 +1,34 @@ +#include + +int binarySearch(int arr[], int left, int right, int x) +{ + while (left <= right) { + int mid = left + (right - l) / 2; + + if (arr[mid] > x) + right = mid - 1; + + if (arr[mid] < x) + left = mid + 1; + + else + return mid; + + } + + return -1; +} + +int main(void) +{ + int arr[] = { 2, 3, 4, 10, 40 }; + int n = sizeof(arr) / sizeof(arr[0]); + int x = 10; + int result = binarySearch(arr, 0, n - 1, x); + (result == -1) ? printf("Element is not present" + " in array") + : printf("Element is present at " + "index %d", + result); + return 0; +} \ No newline at end of file From 0305eef1e63c48735cba89680bb190d2b3a2b3fd Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sun, 4 Oct 2020 12:55:38 +0530 Subject: [PATCH 24/32] Delete linear_search_array_approach.cpp --- .../linear_search_array_approach.cpp | 30 ------------------- 1 file changed, 30 deletions(-) delete mode 100644 Searching/Linear Search/linear_search_array_approach.cpp diff --git a/Searching/Linear Search/linear_search_array_approach.cpp b/Searching/Linear Search/linear_search_array_approach.cpp deleted file mode 100644 index ab94bd0..0000000 --- a/Searching/Linear Search/linear_search_array_approach.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include -using namespace std; - -int search(int arr[], int n, int x) -{ - int i; - for (i = 0; i < n; i++){ - if (arr[i] == x){ - return i; - } - } - return -1; -} - -int main(void) -{ - int n; //number of elements in array - cin >> n; - int arr[n]; - //storing the elements in array - for(int i = 0 ; i> arr[i]; - } - int x; //element to be searched - cin >> x; - int result = search(arr, n, x); - (result == -1)? cout << "Element is not present in array" - : cout << "Element is present at index " << result; - return 0; -} From 8b2097327989de2a464bc9e064147fe222b44cef Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sun, 4 Oct 2020 12:56:02 +0530 Subject: [PATCH 25/32] Delete linear_search_vector_approach.cpp --- .../linear_search_vector_approach.cpp | 39 ------------------- 1 file changed, 39 deletions(-) delete mode 100644 Searching/Linear Search/linear_search_vector_approach.cpp diff --git a/Searching/Linear Search/linear_search_vector_approach.cpp b/Searching/Linear Search/linear_search_vector_approach.cpp deleted file mode 100644 index 503ccb2..0000000 --- a/Searching/Linear Search/linear_search_vector_approach.cpp +++ /dev/null @@ -1,39 +0,0 @@ -// #include -#include -#include -using namespace std; - -int search(vector arr, int n, int x) -{ - int i; - for (i = 0; i < n; i++) - if (arr[i] == x) - return i; - return -1; -} - -// Driver code -int main() -{ - vector arr; - int n; - int x; - cout << "Enter the number of elements in input : "; - cin >> n; - for(int i = 0; i < n ; i++) - { - cout << "Enter the input value of element "<> p; - arr.push_back(p); - } - cout << "Enter the value to be searched: "; - cin >> x; - int index = search(arr, n, x); - if (index == -1) - cout << "Element is not present in the array"; - else - cout << "Element found at position " << index; - - return 0; -} From 534e693fbb25a6cf86d98054be7a0a7e323a04d0 Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sun, 4 Oct 2020 12:56:26 +0530 Subject: [PATCH 26/32] Delete fibonacciSearch.cpp --- .../Fibonacci Search/fibonacciSearch.cpp | 76 ------------------- 1 file changed, 76 deletions(-) delete mode 100644 Searching/Fibonacci Search/fibonacciSearch.cpp diff --git a/Searching/Fibonacci Search/fibonacciSearch.cpp b/Searching/Fibonacci Search/fibonacciSearch.cpp deleted file mode 100644 index dd18562..0000000 --- a/Searching/Fibonacci Search/fibonacciSearch.cpp +++ /dev/null @@ -1,76 +0,0 @@ -// C program for Fibonacci Search -#include - -// Utility function to find minimum of two elements -int min(int x, int y) { return (x<=y)? x : y; } - -/* Returns index of x if present, else returns -1 */ -int fibonacciSearch(int arr[], int x, int n) -{ - /* Initialize fibonacci numbers */ - int fibMMm2 = 0; // (m-2)'th Fibonacci No. - int fibMMm1 = 1; // (m-1)'th Fibonacci No. - int fibM = fibMMm2 + fibMMm1; // m'th Fibonacci - - /* fibM is going to store the smallest Fibonacci - Number greater than or equal to n */ - while (fibM < n) - { - fibMMm2 = fibMMm1; - fibMMm1 = fibM; - fibM = fibMMm2 + fibMMm1; - } - - // Marks the eliminated range from front - int offset = -1; - - /* while there are elements to be inspected. Note that - we compare arr[fibMm2] with x. When fibM becomes 1, - fibMm2 becomes 0 */ - while (fibM > 1) - { - // Check if fibMm2 is a valid location - int i = min(offset+fibMMm2, n-1); - - /* If x is greater than the value at index fibMm2, - cut the subarray array from offset to i */ - if (arr[i] < x) - { - fibM = fibMMm1; - fibMMm1 = fibMMm2; - fibMMm2 = fibM - fibMMm1; - offset = i; - } - - /* If x is greater than the value at index fibMm2, - cut the subarray after i+1 */ - else if (arr[i] > x) - { - fibM = fibMMm2; - fibMMm1 = fibMMm1 - fibMMm2; - fibMMm2 = fibM - fibMMm1; - } - - /* element found. return index */ - else return i; - } - - /* comparing the last element with x */ - if(fibMMm1 && arr[offset+1]==x)return offset+1; - - /*element not found. return -1 */ - return -1; -} - -/* driver function */ -int main(void) -{ - int arr[] = {10, 22, 35, 40, 45, 50, 80, 82, - 85, 90, 100}; - int n = sizeof(arr)/sizeof(arr[0]); - int x = 85; - printf("Found at index: %d", - fibonacciSearch(arr, x, n)); - return 0; -} -Upda From 474f607875a1db25651c676353e524c3feaace12 Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sun, 4 Oct 2020 12:57:19 +0530 Subject: [PATCH 27/32] Delete Bucket_Sort.cpp --- Sorting/Bucket Sort/Bucket_Sort.cpp | 40 ----------------------------- 1 file changed, 40 deletions(-) delete mode 100644 Sorting/Bucket Sort/Bucket_Sort.cpp diff --git a/Sorting/Bucket Sort/Bucket_Sort.cpp b/Sorting/Bucket Sort/Bucket_Sort.cpp deleted file mode 100644 index b232a3a..0000000 --- a/Sorting/Bucket Sort/Bucket_Sort.cpp +++ /dev/null @@ -1,40 +0,0 @@ -#include -#include -#include -using namespace std; -void display(float *array, int size) { - for(int i = 0; i bucket[size]; - for(int i = 0; i> n; - float arr[n]; //create an array with given number of elements - cout << "Enter elements:" << endl; - for(int i = 0; i> arr[i]; - } - cout << "Array before Sorting: "; - display(arr, n); - bucketSort(arr, n); - cout << "Array after Sorting: "; - display(arr, n); -} \ No newline at end of file From 239fc68294594cf28f5c6d29bf0933a6e7fd4bc4 Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sun, 4 Oct 2020 12:58:48 +0530 Subject: [PATCH 28/32] Delete Permute_By_Cylic.cpp --- .../Permute_By_Cylic.cpp | 55 ------------------- 1 file changed, 55 deletions(-) delete mode 100644 Randomized Algorithms/Armstrong's Permutation/Permute_By_Cylic.cpp diff --git a/Randomized Algorithms/Armstrong's Permutation/Permute_By_Cylic.cpp b/Randomized Algorithms/Armstrong's Permutation/Permute_By_Cylic.cpp deleted file mode 100644 index 06e49b8..0000000 --- a/Randomized Algorithms/Armstrong's Permutation/Permute_By_Cylic.cpp +++ /dev/null @@ -1,55 +0,0 @@ -#include -#include -#include -#include -#include - -using namespace std; -using namespace std::chrono; - -void get_input(int *arr, int n) { - for (int i = 0; i < n; i++) { - cin >> arr[i]; - } -} - -void permute_by_cyclic(int *arr, int n) { - srand(time(0)); - int *b = new int[n]; - int *c; - int offset = rand() % n; - - for (int i = 0; i < n; i++) { - int dest = i + offset; - if (dest > n) { - dest -= n; - } - b[dest] = arr[i]; - } - - c = arr; - c = NULL; - arr = b; -} - -void display(int *arr, int n) { - for (int i = 0; i < n; i++) { - cout << arr[i] << " "; - } -} -int main() -{ - int n, *arr; - - cout << "Number of elements: "; - cin >> n; - - arr = new int[n]; - - get_input(arr, n); - - permute_by_cyclic(arr, n); - - cout << "The randomized elements are: " << endl; - display(arr, n); -} From 18be3535580a695eeebf7709615ab8c6292c0456 Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sun, 4 Oct 2020 12:59:10 +0530 Subject: [PATCH 29/32] Delete Permute_In_Place.cpp --- .../Permute In Place/Permute_In_Place.cpp | 60 ------------------- 1 file changed, 60 deletions(-) delete mode 100644 Randomized Algorithms/Permute In Place/Permute_In_Place.cpp diff --git a/Randomized Algorithms/Permute In Place/Permute_In_Place.cpp b/Randomized Algorithms/Permute In Place/Permute_In_Place.cpp deleted file mode 100644 index b199069..0000000 --- a/Randomized Algorithms/Permute In Place/Permute_In_Place.cpp +++ /dev/null @@ -1,60 +0,0 @@ -#include -#include -#include -#include -#include - -using namespace std; -using namespace std::chrono; - -void swap(int *xp, int *yp) { - int temp = *xp; - *xp = *yp; - *yp = temp; -} - -void permute(int *arr, int n) { - srand(time(0)); - int j = 0; - for (int i = 0; i < n; i++) { - j = rand() % n; - swap(&arr[i], &arr[j]); - } -} - -void get_input(int *arr, int n) { - cout << "Elements: " << endl; - for (int i = 0; i < n; i++) { - cin >> arr[i]; - } -} - -void display(int *arr, int n) { - for (int i = 0; i < n; i++) { - cout << arr[i] << " "; - } -} - -int main() -{ - int n, *arr; - cout << "Number of elements: "; - cin >> n; - - arr = new int[n]; - - get_input(arr, n); - - auto start = high_resolution_clock::now(); - permute(arr, n); - auto stop = high_resolution_clock::now(); - auto duration = duration_cast(stop - start); - cout << "The running time of algorithm is: " << duration.count() << "ns" << endl; - - cout << "The randomized list of elements is: "; - display(arr, n); - - cout << "\nPress any key to exit "; - cin.get(); - cin.ignore(); -} From 806b9ce16c7de93e913a7993282cbae1111633d6 Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sun, 4 Oct 2020 12:59:36 +0530 Subject: [PATCH 30/32] Delete Permute_Without_Identity.cpp --- .../Permute_Without_Identity.cpp | 56 ------------------- 1 file changed, 56 deletions(-) delete mode 100644 Randomized Algorithms/Permute Without Identity/Permute_Without_Identity.cpp diff --git a/Randomized Algorithms/Permute Without Identity/Permute_Without_Identity.cpp b/Randomized Algorithms/Permute Without Identity/Permute_Without_Identity.cpp deleted file mode 100644 index 9f64ad7..0000000 --- a/Randomized Algorithms/Permute Without Identity/Permute_Without_Identity.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#include -#include -#include -#include -#include - -using namespace std; -using namespace std::chrono; - -void swap(int *xp, int *yp) { - int temp = *xp; - *xp = *yp; - *yp = temp; -} - -void get_input(int *arr, int n) { - for (int i = 0; i < n; i++) { - cin >> arr[i]; - } -} - -void permute_without_identity(int *arr, int n) { - - srand(time(0)); - - for (int i = 0; i < n; i++) { - swap(&arr[i], &arr[(rand() % (n - i)) + i]); - } -} - -void display(int *arr, int n) { - for (int i = 0; i < n; i++) { - cout << arr[i] << " "; - } -} - -int main() -{ - int n, *arr; - cout << "Number of elements: "; - cin >> n; - - arr = new int[n]; - - cout << "Elements: " << endl; - get_input(arr, n); - - auto start = high_resolution_clock::now(); - permute_without_identity(arr, n); - auto stop = high_resolution_clock::now(); - auto duration = duration_cast(stop - start); - cout << "Running time of algorithm is: " << duration.count() << "ns " << endl; - - cout << "The randomized array is: " << endl; - display(arr, n); -} From 9b21b84754d759485b6028fb21b3da39571dea84 Mon Sep 17 00:00:00 2001 From: Aditya Mandke <40426312+ekdnam@users.noreply.github.com> Date: Sun, 4 Oct 2020 15:52:32 +0530 Subject: [PATCH 31/32] rename file --- Sorting/Merge Sort/{mergesort.c => mergeSort.c} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Sorting/Merge Sort/{mergesort.c => mergeSort.c} (100%) diff --git a/Sorting/Merge Sort/mergesort.c b/Sorting/Merge Sort/mergeSort.c similarity index 100% rename from Sorting/Merge Sort/mergesort.c rename to Sorting/Merge Sort/mergeSort.c From 34fba975c4a278a8f07a2518019443e0242d6a9a Mon Sep 17 00:00:00 2001 From: JanitChawla <68466788+JanitChawla@users.noreply.github.com> Date: Mon, 5 Oct 2020 01:26:11 +0530 Subject: [PATCH 32/32] updated insertion sort in c updated insertion sort in my branch --- Sorting/Insertion Sort/insertion.c | 40 ++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 Sorting/Insertion Sort/insertion.c diff --git a/Sorting/Insertion Sort/insertion.c b/Sorting/Insertion Sort/insertion.c new file mode 100644 index 0000000..57fe66d --- /dev/null +++ b/Sorting/Insertion Sort/insertion.c @@ -0,0 +1,40 @@ +#include + +void insertionSort(int arr[], int n) +{ + int i, k, j; + for (i = 1; i < n; i++) { + k = arr[i]; + j = i - 1; + while (j >= 0 && arr[j] > k) { + arr[j + 1] = arr[j]; + j = j - 1; + } + arr[j + 1] = k; + } +} + +void printArray(int arr[], int n) +{ + int i; + for (i = 0; i < n; i++) + printf("%d ", arr[i]); + printf("\n"); +} + +void main(){ + + int i, j, c, t, arr[30]; + + printf("Enter the total number of elements:"); + scanf("%d",&c); + + printf("Enter %d elements: ", c); + + for(i=0;i