C++程序 将矩阵按行和列排序

C++程序 将矩阵按行和列排序

本程序是用C++编写,用于实现将给定的矩阵按行和列排序的功能。矩阵排序在许多科学和工程应用中都是常见的问题。排序可以增强矩阵的可读性,并可以提高矩阵求解的效率。下面是示例代码,其中排序使用了快速排序算法。

#include <iostream>
#include <algorithm>
using namespace std;

void print_matrix(int arr[][5], int n, int m) {
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }
}

void sort_rows(int arr[][5], int n, int m) {
    for (int i = 0; i < n; i++) {
        sort(arr[i], arr[i] + m);
    }
}

void sort_cols(int arr[][5], int n, int m) {
    for (int j = 0; j < m; j++) {
        int temp[n];
        for (int i = 0; i < n; i++) {
            temp[i] = arr[i][j];
        }
        sort(temp, temp + n);
        for (int i = 0; i < n; i++) {
            arr[i][j] = temp[i];
        }
    }
}

int main() {
    int arr[4][5] = {{5, 2, 9, 1, 3},
                     {8, 7, 6, 4, 2},
                     {4, 1, 6, 3, 8},
                     {2, 9, 7, 5, 1}};
    cout << "The original matrix is:\n";
    print_matrix(arr, 4, 5);

    sort_rows(arr, 4, 5);
    cout << "\nThe matrix sorted by rows is:\n";
    print_matrix(arr, 4, 5);

    sort_cols(arr, 4, 5);
    cout << "\nThe matrix sorted by cols is:\n";
    print_matrix(arr, 4, 5);

    return 0;
}

代码解释

这个程序定义了三个函数和一个主函数。

  • print_matrix函数用于在控制台上打印矩阵,其中参数arr是一个二维整数数组,表示要输出的数组,nm分别是数组的行数和列数。
  • sort_rows函数用于按行排序矩阵。它通过循环访问每一行,并使用STL的sort算法对每一行进行排序。
  • sort_cols函数用于按列排序矩阵。它通过循环访问每一列,并将每一列的元素复制到一个临时数组中,在对临时数组进行排序后,将排序后的值逐一赋值回原始矩阵中。

主函数定义一个4×5的int类型二维数组,然后依次进行排序。在排序前和排序后都调用print_matrix函数,以便检查排序的正确性。

结论

这个程序实现的功能是将矩阵按行和列排序。它定义了三个函数来完成任务,其中sort算法用于简化排序过程。这个程序可以扩展到任意大小的矩阵,并且可以用于许多应用领域。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程

C++ 示例