Informatică, întrebare adresată de triplepandispap0xwgb, 8 ani în urmă

Scrieţi un program care citeşte un tablou bidimensional cu n linii şi n coloane (n<=30)
care memorează numere întregi distincte de cel mult patru cifre frecare. Să se ordoneze
crescător elementele situate pe diagonala principală a matricei.

Răspunsuri la întrebare

Răspuns de andrewbach1999
0

#include <bits/stdc++.h>

using namespace std;

void qSort(vector<vector<int>>& m, int low, int high) {

   if(low < high) {

       int p = low;

       for(int i = low; i < high; ++i) {

           if(m[i][i] < m[high][high]) {

               swap(m[i][i], m[p][p]);

               ++p;

           }

       }

       swap(m[p][p], m[high][high]);

       qSort(m, p+1, high);

       qSort(m, low, p-1);

   }

}

int main()

{

   int n;

   cin >> n;

   vector<vector<int>> m;

   m.reserve(n);

   for(int i = 0; i < n; i++) {

       vector<int> row(n);

       for(int j = 0; j < n; j++) {

           cin >> row[j];

       }

       m.push_back(row);

   }

   qSort(m, 0, n-1);

   for(auto i : m) {

       for(auto j : i) cout << setw(4) << j;

       cout << endl;

   }

   return 0;

}


triplepandispap0xwgb: prin metoda sortarii , poti?
Alte întrebări interesante