📜  C ++程序对矩阵按行和按列进行排序(1)

📅  最后修改于: 2023-12-03 14:59:37.303000             🧑  作者: Mango

C++程序对矩阵按行和按列进行排序

本文介绍如何在C++中对矩阵按行或按列进行排序。我们将展示代码片段和说明代码,以便您可以了解如何在您的代码中实现排序。

按行排序

按行排序指按照每一行的大小对矩阵进行排序。以下是一个简单的C++代码示例,说明如何使用C++ STL库对矩阵进行行排序。

#include<iostream> 
#include<algorithm> 
using namespace std;
  
int main() 
{ 
    int arr[3][3] = {{9, 8, 7}, {6, 5, 4}, {3, 2, 1}}; 
    cout << "矩阵排序前:" << endl; 
    for (int i=0; i<3; i++) 
    { 
        for (int j=0; j<3; j++) 
            cout << arr[i][j] << " "; 
        cout << endl; 
    } 
  
    sort(arr[0], arr[0]+3); 
    sort(arr[1], arr[1]+3); 
    sort(arr[2], arr[2]+3); 
  
    cout << "按行排序后:" << endl; 
    for (int i=0; i<3; i++) 
    { 
        for (int j=0; j<3; j++) 
            cout << arr[i][j] << " "; 
        cout << endl; 
    } 
    return 0; 
} 

输出结果为:

矩阵排序前:
9 8 7 
6 5 4 
3 2 1 
按行排序后:
7 8 9 
4 5 6 
1 2 3

在上面的代码中,我们首先定义了一个3x3的矩阵,并在控制台上打印了排序前的矩阵。然后,我们使用sort()函数从STL库来按行对矩阵进行排序。使用sort()函数需要传递一个数组的地址和大小。在这里,我们使用在每个行的第一个元素的地址开始,并在维度上添加矩阵的大小。使用sort()函数可以轻松地对矩阵进行排序。

按列排序

按列排序是按照每个列的大小对矩阵进行排序。以下是一个C++代码示例,展示如何在C++中按列对矩阵进行排序。

#include<iostream> 
#include<algorithm> 
using namespace std;
  
int main() 
{ 
    int arr[3][3] = {{9, 8, 7}, {6, 5, 4}, {3, 2, 1}}; 
    cout << "矩阵排序前:" << endl; 
    for (int i=0; i<3; i++) 
    { 
        for (int j=0; j<3; j++) 
            cout << arr[i][j] << " "; 
        cout << endl; 
    } 
  
    for (int j=0; j<3; j++) 
    {
        int tempArr[3] = {arr[0][j], arr[1][j], arr[2][j]};
        sort(tempArr, tempArr+3);
        arr[0][j] = tempArr[0];
        arr[1][j] = tempArr[1];
        arr[2][j] = tempArr[2];
    } 
  
    cout << "按列排序后:" << endl; 
    for (int i=0; i<3; i++) 
    { 
        for (int j=0; j<3; j++) 
            cout << arr[i][j] << " "; 
        cout << endl; 
    } 
    return 0; 
} 

输出结果为:

矩阵排序前:
9 8 7 
6 5 4 
3 2 1 
按列排序后:
3 2 1 
6 5 4 
9 8 7

在上面的代码中,我们同样定义了3x3的矩阵,并在控制台上打印排序前的矩阵。然后,我们按列进行排序。我们首先将一个列的所有元素存储在一个临时数组中。然后我们对这个数组进行排序,最后将排序后的值赋值回原始矩阵。重复对每列进行此操作,就可以对矩阵进行列排序。