एक स्पार्स मैट्रिक्स वह मैट्रिक्स है जिसमें अधिकांश एलिमेंट्स 0 होते हैं। दूसरे शब्दों में, यदि मैट्रिक्स में आधे से अधिक एलिमेंट्स 0 हैं, तो इसे स्पार्स मैट्रिक्स के रूप में जाना जाता है। उदाहरण के लिए:
नीचे दिया गया मैट्रिक्स 5 शून्य रखता है। चूंकि शून्य की संख्या मैट्रिक्स के आधे से अधिक एलिमेंट्स हैं, यह एक स्पार्स मैट्रिक्स है।
1 0 2 5 0 0 0 0 9
यह जांचने का प्रोग्राम कि यह स्पार्स मैट्रिक्स है या नहीं, निम्नलिखित है।
उदाहरण
#include<iostream> using namespace std; int main () { int a[10][10] = { {2, 0, 0} , {0, 3, 8} , {0, 9, 0} }; int i, j, count = 0; int r = 3, c = 3; for (i = 0; i < r; ++i) { for (j = 0; j < c; ++j) { if (a[i][j] == 0) count++; } } cout<<"मैट्रिक्स है:"<<endl; for (i = 0; i < r; ++i) { for (j = 0; j < c; ++j) { cout<<a[i][j]<<" "; } cout<<endl; } cout<<"मैट्रिक्स में "<<count<<" शून्य हैं"<<endl; if (count > ((r * c)/ 2)) cout<<"यह एक स्पार्स मैट्रिक्स है"<<endl; else cout<<"यह स्पार्स मैट्रिक्स नहीं है"<<endl; return 0; } आउटपुट
मैट्रिक्स है: 2 0 0 0 3 8 0 9 0 मैट्रिक्स में 5 शून्य हैं यह एक स्पार्स मैट्रिक्स है
उपरोक्त प्रोग्राम में, मैट्रिक्स में शून्य की संख्या गिनने के लिए नेस्टेड फॉर लूप का उपयोग किया जाता है। यह निम्नलिखित कोड स्निपेट का उपयोग करके प्रदर्शित होता है।
for (i = 0; i < r; ++i) { for (j = 0; j < c; ++j) { if (a[i][j] == 0) count++; } } शून्य की संख्या खोजने के बाद, मैट्रिक्स को नेस्टेड फॉर लूप का उपयोग करके प्रदर्शित किया जाता है। यह नीचे दिखाया गया है:
cout<<"मैट्रिक्स है:"<<endl; for (i = 0; i < r; ++i) { for (j = 0; j < c; ++j) { cout<<a[i][j]<<" "; } cout<<endl; } अंत में, शून्य की संख्या प्रदर्शित की जाती है। यदि शून्य की संख्या मैट्रिक्स में आधे से अधिक एलिमेंट्स है, तो प्रदर्शित किया जाता है कि मैट्रिक्स स्पार्स मैट्रिक्स है अन्यथा मैट्रिक्स स्पार्स मैट्रिक्स नहीं है।
cout<<"मैट्रिक्स में "<<count<<" शून्य हैं"<<endl; if (count > ((r * c)/ 2)) cout<<"यह एक स्पार्स मैट्रिक्स है"<<endl; else cout<<"यह स्पार्स मैट्रिक्स नहीं है"<<endl;