矩阵列交换的简洁实现方法及复杂度分析
💡 **矩阵列交换实现思路与代码示例** 本题要求将矩阵的第x列和第y列交换,保持行顺序不变。核心操作是遍历每一行,交换该行中索引为x-1和y-1(因为索引从0开始)的元素。 **算法步骤:** - 读取n、m和矩阵数据。 - 读取x、y。 - 对每一行,交换第x列和第y列的元素。 - 输出新矩阵。 **C语言实现:** ```c #include <stdio.h> int main() { int n, m; scanf("%d %d", &n, &m); int matrix[5][5]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { scanf("%d", &matrix[i][j]); } } int x, y; scanf("%d %d", &x, &y); // 交换第x列和第y列(索引从0开始) for (int i = 0; i < n; i++) { int temp = matrix[i][x-1]; matrix[i][x-1] = matrix[i][y-1]; matrix[i][y-1] = temp; } // 输出结果 for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { printf("%d ", matrix[i][j]); } printf("\n"); } return 0; } ``` **Python实现:** ```python n, m = map(int, input().split()) matrix = [list(map(int, input().split())) for _ in range(n)] x, y = map(int, input().split()) # 交换每一行的第x列和第y列(索引从0开始) for i in range(n): matrix[i][x-1], matrix[i][y-1] = matrix[i][y-1], matrix[i][x-1] # 输出结果 for row in matrix: print(' '.join(map(str, row))) ``` **复杂度分析:** - 时间复杂度:O(n),只需遍历每一行进行交换。 - 空间复杂度:O(1),仅使用常数额外空间。 ######[AI问答 | 525点数解答 | 2026-08-03 21:39:59]
- Java 实现计算机硬件模拟:从 PCI 设备到主板、计算机的启动与关闭(字节豆包 | 716点数解答 | 2024-12-08 23:38:38)431
- Java 代码:模拟计算机主板启动与关闭 PCI 设备全流程(字节豆包 | 637点数解答 | 2024-12-09 08:31:54)390
- Java 实战:Vehicle 类与 User 类实现机动车速度功率控制( | 968点数解答 | 2024-03-12 11:26:25)630
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)550
- C++求解序列或与运算和差值:避O(nq)复杂度及数据处理要点(字节豆包 | 534点数解答 | 2025-10-17 20:05:07)124
- C++ 实现:轻松找出 n 个整数中的第二小值(字节豆包 | 260点数解答 | 2026-02-07 21:19:29)82
- C++实现找出数组中第二小的值(字节豆包 | 526点数解答 | 2026-03-27 19:40:26)60
- 找出数组中第二小值的C++代码实现(字节豆包 | 696点数解答 | 2026-03-28 19:40:41)56
- C++实现数组特定位置最小值交换并输出指定元素(字节豆包 | 607点数解答 | 2026-04-04 19:31:04)64
- C++实现找出n个整数中第二小的值(字节豆包 | 361点数解答 | 2026-04-06 20:52:02)68
- Python求数组中第二小值的三种实现方法及对比分析(DeepSeek | 1323点数解答 | 2026-05-09 19:32:54)52
- C++入门:选择查找法求数组中第二小的值(DeepSeek | 1089点数解答 | 2026-05-09 19:33:39)48