परिचय
इनवर्जन काउंट का अर्थ है सरणी को सॉर्ट करने के लिए आवश्यक स्वैप की संख्या। यदि सरणी सॉर्टेड है तो इनवर्जन काउंट = 0। यदि सरणी रिवर्स ऑर्डर में सॉर्टेड है तो इनवर्जन काउंट = अधिकतम।
एल्गोरिदम
CountInversionArray फ़ंक्शन में सरणी a[] और n = तत्वों की संख्या लें। काउंटर c := 0 प्रारंभ करें। 0 से n-1 तक i के लिए लूप चलाएं, i+1 से n तक j के लिए नेस्टेड लूप चलाएं। यदि a[i] > a[j] तो काउंट 1 बढ़ाएं। अंत में काउंट लौटाएं।
उदाहरण कोड
#include <iostream>
using namespace std;
int CountInversionArray(int a[], int n) {
int i, j, c = 0;
for (i = 0; i < n; i++) {
for (j = i+1; j < n; j++)
if (a[i] > a[j])
c++;
}
return c;
}
int main() {
int n, i;
cout << "\nतत्वों की संख्या दर्ज करें: ";
cin >> n;
int a[n];
for (i = 0; i < n; i++) {
cout << "तत्व " << i+1 << ": ";
cin >> a[i];
}
cout << "\nसरणी में इनवर्जन की संख्या: " << CountInversionArray(a, n);
return 0;
}आउटपुट
तत्वों की संख्या दर्ज करें: 5 तत्व 1: 3 तत्व 2: 2 तत्व 3: 7 तत्व 4: 6 तत्व 5: 1 सरणी में इनवर्जन की संख्या: 6