मान लीजिए कि एक सरणी A दिया गया है। हमें उस सरणी में प्रत्येक तत्व की संख्या को पार करना होगा। पार करने वाले अधिक से अधिक तत्व होते हैं जो वर्तमान तत्व की सरणी के दाईं ओर मौजूद होते हैं। मान लीजिए A ={2, 7, 5, 3, 0, 8, 1}, श्रेष्ठ हैं {4, 1, 1, 2, 0, 0}, तो 2 में दायीं ओर 4 संख्याएँ हैं, जो बड़ी हैं 4 की तुलना में, और दूसरों के लिए समान नियम। समाधान बहुत सरल है, दो नेस्टेड लूप होंगे, प्रत्येक तत्व के लिए, यह अतिरेक की गणना करेगा, फिर उन्हें किसी अन्य सरणी में संग्रहीत करेगा।
उदाहरण
#include <iostream> using namespace std; void gerSurpassers(int arr[], int surpassers[], int n){ for(int i = 0; i<n; i++){ int count = 0; for(int j = i+1; j<n; j++){ if(arr[j] > arr[i]) count++; } surpassers[i] = count; } } void displayArray(int arr[], int n){ for(int i = 0; i<n; i++){ cout << arr[i] << " "; } cout << "\n"; } int main() { int arr[] = {2, 7, 5, 3, 0, 8, 1}; int n = sizeof(arr) / sizeof(arr[0]); int surpassers[n]; cout << "Elements :"; displayArray(arr, n); gerSurpassers(arr, surpassers, n); cout << "Surpassers:"; displayArray(surpassers, n); }
आउटपुट
Elements :2 7 5 3 0 8 1 Surpassers:4 1 1 1 2 0 0