
Data Structure
Networking
RDBMS
Operating System
Java
MS Excel
iOS
HTML
CSS
Android
Python
C Programming
C++
C#
MongoDB
MySQL
Javascript
PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Kth Smallest Element After Every Insertion in C++
In this tutorial, we are going to find the k-th smallest element after every insertion.
We are going to use the min-heap to solve the problem. Let's see the steps to complete the program.
- Initialise the array with random data.
- Initialise the priority queue.
- Till k - 1 there won't be any k-th smallest element. So, print any symbol u like.
- Write a loop that iterates from k + 1 to n.
- Print the root of the min-heap.
- If the element is greater than the root of the min-heap, then pop the root and insert the element.
Example
Let's see the code.
#include <bits/stdc++.h> using namespace std; void findKthSmallestElement(int elements[], int n, int k) { priority_queue<int, vector<int>, greater<int>> queue; for (int i= 0; i < k - 1; i++) { queue.push(elements[i]); cout << "- "; } queue.push(elements[k-1]); for (int i = k; i < n; i++) { cout << queue.top() << " "; if (elements[i] > queue.top()) { queue.pop(); queue.push(elements[i]); } } cout << queue.top() << endl; } int main() { int arr[] = {3, 5, 6, 2, 7, 8, 2, 3, 5, 9}; findKthSmallestElement(arr, 10, 5); return 0; }
Output
If you run the above code, then you will get the following result.
- - - - 2 3 3 3 5 5
Conclusion
If you have any queries in the tutorial, mention them in the comment section.
Advertisements