From 65b7c1070b9ad1f7dd0ab8a1a52644971e40572d Mon Sep 17 00:00:00 2001 From: Aishal Gupta Date: Tue, 4 Oct 2022 15:02:57 +0530 Subject: [PATCH 1/3] Create Heap Sort in C++ --- CPP/sorting/Heap Sort in C++ | 77 ++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 CPP/sorting/Heap Sort in C++ diff --git a/CPP/sorting/Heap Sort in C++ b/CPP/sorting/Heap Sort in C++ new file mode 100644 index 00000000..37b86c8c --- /dev/null +++ b/CPP/sorting/Heap Sort in C++ @@ -0,0 +1,77 @@ +#include +using namespace std; + +// To heapify a subtree rooted with node i +// which is an index in arr[]. +// n is size of heap +void heapify(int arr[], int N, int i) +{ + + // Initialize largest as root + int largest = i; + + // left = 2*i + 1 + int l = 2 * i + 1; + + // right = 2*i + 2 + int r = 2 * i + 2; + + // If left child is larger than root + if (l < N && arr[l] > arr[largest]) + largest = l; + + // If right child is larger than largest + // so far + if (r < N && arr[r] > arr[largest]) + largest = r; + + // If largest is not root + if (largest != i) { + swap(arr[i], arr[largest]); + + // Recursively heapify the affected + // sub-tree + heapify(arr, N, largest); + } +} + +// Main function to do heap sort +void heapSort(int arr[], int N) +{ + + // Build heap (rearrange array) + for (int i = N / 2 - 1; i >= 0; i--) + heapify(arr, N, i); + + // One by one extract an element + // from heap + for (int i = N - 1; i > 0; i--) { + + // Move current root to end + swap(arr[0], arr[i]); + + // call max heapify on the reduced heap + heapify(arr, i, 0); + } +} + +// A utility function to print array of size n +void printArray(int arr[], int N) +{ + for (int i = 0; i < N; ++i) + cout << arr[i] << " "; + cout << "\n"; +} + +// Driver's code +int main() +{ + int arr[] = { 12, 11, 13, 5, 6, 7 }; + int N = sizeof(arr) / sizeof(arr[0]); + + // Function call + heapSort(arr, N); + + cout << "Sorted array is \n"; + printArray(arr, N); +} From 8ba6ef4869b4721b4ea815c0350703e34c150507 Mon Sep 17 00:00:00 2001 From: Aishal Gupta Date: Tue, 4 Oct 2022 15:04:44 +0530 Subject: [PATCH 2/3] Codeforces solution of problem 49A --- 49a.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 49a.cpp diff --git a/49a.cpp b/49a.cpp new file mode 100644 index 00000000..840d794c --- /dev/null +++ b/49a.cpp @@ -0,0 +1,28 @@ +#include +using namespace std; +int main(){ + +string s; +getline(cin,s); + +int l=s.length(); +int f=0; +for (int i=l;i=0;i--){ +if (s[i]!=' ' || s[i]!='?'){ + if (s[i]=='A' || s[i]=='E' || s[i]=='I' || s[i]=='O' || s[i]=='U' || s[i]=='Y' || s[i]=='a' || s[i]=='e' || s[i]=='i' || s[i]=='o' || s[i]=='u' || s[i]=='y' ){ + f=1; + break; + + } + else + f=0;}} + + if (f==1){ + cout<<"YES"< Date: Tue, 4 Oct 2022 15:13:18 +0530 Subject: [PATCH 3/3] Create Sets in c++ STL --- CPP/stl/Sets in c++ STL | 74 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 CPP/stl/Sets in c++ STL diff --git a/CPP/stl/Sets in c++ STL b/CPP/stl/Sets in c++ STL new file mode 100644 index 00000000..79615eae --- /dev/null +++ b/CPP/stl/Sets in c++ STL @@ -0,0 +1,74 @@ +// CPP program to demonstrate various functions of +// Set in C++ STL +#include +#include +#include +using namespace std; + +int main() +{ + // empty set container + set > s1; + + // insert elements in random order + s1.insert(40); + s1.insert(30); + s1.insert(60); + s1.insert(20); + s1.insert(50); + + // only one 50 will be added to the set + s1.insert(50); + s1.insert(10); + + // printing set s1 + set >::iterator itr; + cout << "\nThe set s1 is : \n"; + for (itr = s1.begin(); itr != s1.end(); itr++) { + cout << *itr << " "; + } + cout << endl; + + // assigning the elements from s1 to s2 + set s2(s1.begin(), s1.end()); + + // print all elements of the set s2 + cout << "\nThe set s2 after assign from s1 is : \n"; + for (itr = s2.begin(); itr != s2.end(); itr++) { + cout << *itr << " "; + } + cout << endl; + + // remove all elements up to 30 in s2 + cout << "\ns2 after removal of elements less than 30 " + ":\n"; + s2.erase(s2.begin(), s2.find(30)); + for (itr = s2.begin(); itr != s2.end(); itr++) { + cout << *itr << " "; + } + + // remove element with value 50 in s2 + int num; + num = s2.erase(50); + cout << "\ns2.erase(50) : "; + cout << num << " removed\n"; + for (itr = s2.begin(); itr != s2.end(); itr++) { + cout << *itr << " "; + } + + cout << endl; + + // lower bound and upper bound for set s1 + cout << "s1.lower_bound(40) : \n" + << *s1.lower_bound(40) << endl; + cout << "s1.upper_bound(40) : \n" + << *s1.upper_bound(40) << endl; + + // lower bound and upper bound for set s2 + cout << "s2.lower_bound(40) :\n" + << *s2.lower_bound(40) << endl; + cout << "s2.upper_bound(40) : \n" + << *s2.upper_bound(40) << endl; + + return 0; +}