📅  最后修改于: 2023-12-03 14:59:37.303000             🧑  作者: Mango
本文介绍如何在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的矩阵,并在控制台上打印排序前的矩阵。然后,我们按列进行排序。我们首先将一个列的所有元素存储在一个临时数组中。然后我们对这个数组进行排序,最后将排序后的值赋值回原始矩阵。重复对每列进行此操作,就可以对矩阵进行列排序。