c++ InPlace 100% faster using PriorityQueue

int n=mat.size();
int m=mat[0].size();
priority_queue<int,vector ,greater> pq;

    for(int i=0;i<m;i++)
    {
        int j=i;
        int k=0;
        vector<int> t1;
        while(j<m && k<n)
        {
            pq.push(mat[k][j]);
            k++;
            j++;
            
        }
        
        j=i;
        k=0;
        while(!pq.empty())
        {
            mat[k][j]=pq.top();
            pq.pop();
            k++;
            j++;
        }
    }
    
    for(int i=1;i<n;i++)
    {
        int j=0;
        int k=i;
        while(k<n && j<m)
        {
            pq.push(mat[k][j]);
            k++;
            j++;
        }
        j=0;
        k=i;
        while(!pq.empty())
        {
            mat[k][j]=pq.top();
            pq.pop();
            k++;
            j++;
        }
        
    }
    return mat;
Comments (0)