Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

C++ में मैट्रिक्स के प्रत्येक विकर्ण तत्व को आरोही क्रम में क्रमबद्ध करने का प्रोग्राम


मान लीजिए हमारे पास n x m मैट्रिक्स Mat है, हमें इस Mat को विकर्ण रूप से ऊपर-बाएं से नीचे-दाएं तक बढ़ते क्रम में क्रमबद्ध करना है, ताकि विकर्णों में सभी तत्व क्रमबद्ध हों।

उदाहरण के लिए, यदि इनपुट मैट्रिक्स है:

3311
2212
1112
तो आउटपुट मैट्रिक्स होगा:
1111
1222
1233

इसे हल करने के लिए हम निम्न चरणों का पालन करेंगे:

  • solve() नामक एक विधि परिभाषित करें, जो si, sj और मैट्रिक्स mat लेती है
  • n := पंक्तियों की संख्या और m := स्तंभों की संख्या
  • temp नामक एक सरणी बनाएं
  • i := si और j := sj, और index := 0
  • जब तक i < n और j < m, करें:
    • temp में m[i][j] डालें, फिर i और j को 1 से बढ़ाएं
  • temp सरणी को क्रमबद्ध करें
  • index := 0, i := si और j := sj सेट करें
  • जब तक i < n और j < m:
    • mat[i][j] := temp[index]
    • i, j और index को 1 से बढ़ाएं
  • मुख्य विधि से:
    • n := पंक्तियों की संख्या और m := स्तंभों की संख्या
    • i को 0 से n-1 तक के लिए करें: solve(i, 0, mat)
    • j को 1 से m-1 तक के लिए करें: solve(0, j, mat)
    • mat वापस करें

उदाहरण

#include 
using namespace std;
void print_vector(vector> v){
    cout << "[";
    for(int i = 0; i> &mat){
        int n = mat.size();
        int m = mat[0].size();
        vector temp;
        int i = si;
        int j = sj;
        int idx = 0;
        while(i < n && j < m){
            temp.push_back(mat[i][j]);
            i++;
            j++;
        }
        sort(temp.begin(), temp.end());
        idx = 0;
        i = si;
        j = sj;
        while(i < n && j < m){
            mat[i][j] = temp[idx];
            i++;
            j++;
            idx++;
        }
    }
    vector> diagonalSort(vector>& mat) {
        int n = mat.size();
        int m = mat[0].size();
        for(int i = 0; i < n; i++){
            solve(i, 0, mat);
        }
        for(int j = 1; j < m; j++){
            solve(0, j, mat);
        }
        return mat;
    }
};
int main(){
    vector> v = {{3,3,1,1},{2,2,1,2},{1,1,1,2}};
    Solution ob;
    print_vector(ob.diagonalSort(v));
}

इनपुट

{{3,3,1,1},{2,2,1,2},{1,1,1,2}}

आउटपुट

[[1, 1, 1, 1, ], [1, 2, 2, 2, ], [1, 2, 3, 3, ],]
  1. - C प्रोग्राम: दस तत्वों की सरणी को आरोही क्रम में सॉर्ट करना

    सरणी संबंधित डेटा आइटम्स का एक समूह है जिसे एक ही नाम से संग्रहीत किया जाता है। उदाहरण के लिए, int student[30]; यहां, student एक सरणी नाम है जो एक ही वेरिएबल नाम के साथ 30 डेटा आइटम्स का संग्रह रखता है। ऑपरेशन सरणी के ऑपरेशन नीचे बताए गए हैं: खोज - यह पता लगाने के लिए उपयोग किया जाता है कि कोई विश

  1. - C++ में दिए गए मैट्रिक्स को विकर्ण मैट्रिक्स में बदलें

    आकार nxn की एक मैट्रिक्स दी गई है और कार्य किसी भी प्रकार की दी गई मैट्रिक्स को विकर्ण मैट्रिक्स में बदलना है। विकर्ण मैट्रिक्स क्या है विकर्ण मैट्रिक्स nxn मैट्रिक्स है जिसके सभी गैर-विकर्ण एलिमेंट्स शून्य हैं और विकर्ण एलिमेंट्स कोई भी मान हो सकते हैं। गैर-विकर्ण एलिमेंट्स को 0 में बदलने का आरेख न

  1. C++ में डायगोनल मैट्रिक्स और स्केलर मैट्रिक्स जांचें C++ में डायगोनल मैट्रिक्स और स्केलर मैट्रिक्स जांचें

    एक मैट्रिक्स M[r][c] दिया गया है, r पंक्तियों की संख्या दर्शाता है और c कॉलम की संख्या दर्शाता है जैसे कि r = c एक स्क्वायर मैट्रिक्स बनाता है। हमें ढूंढना है कि दिया गया स्क्वायर मैट्रिक्स डायगोनल और स्केलर मैट्रिक्स है या नहीं, यदि यह डायगोनल और स्केलर मैट्रिक्स है तो परिणाम मे