一个二维数组,要遍历行跟列,要求偶数行的时候列从小到大遍历,当行是奇数的时候列从大到小遍历
时间: 2024-05-06 09:21:05 浏览: 57
可以使用以下代码实现:
```python
# 假设数组为arr,n为行数,m为列数
for i in range(n): # 遍历每一行
if i % 2 == 0: # 偶数行
for j in range(m): # 列从小到大遍历
print(arr[i][j], end=' ')
else: # 奇数行
for j in range(m-1, -1, -1): # 列从大到小遍历
print(arr[i][j], end=' ')
print() # 换行
```
这段代码首先遍历每一行,如果是偶数行则从小到大遍历列,否则从大到小遍历列。最后输出换行符,换到下一行。
希望以上回答能够解决您的问题。
相关问题
6、对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序
可以使用冒泡排序或者快速排序来实现这个要求。
以下是一个使用快速排序的示例代码:
```python
def sort_matrix(matrix):
for i in range(len(matrix)):
if i % 2 == 0:
matrix[i] = sorted(matrix[i])
else:
matrix[i] = sorted(matrix[i], reverse=True)
return matrix
```
这个函数接受一个 N 行 N 列的二维数组作为参数,然后遍历每一行,对于偶数行使用 Python 的 `sorted` 函数从小到大排序,对于奇数行使用 `sorted` 函数从大到小排序,最后返回排好序的二维数组。
用c语言实现,对N行N列二维数组的每一行排序,偶数行(0当作偶数)由小到大排序,奇数行由大到小排序
以下是使用 C 语言实现对一个 N 行 N 列二维数组的每一行排序,偶数行从小到大排序,奇数行从大到小排序的代码示例:
```c
#include <stdio.h>
// 快速排序函数
void quick_sort(int arr[], int left, int right) {
if (left >= right) {
return;
}
int pivot = arr[left];
int i = left, j = right;
while (i < j) {
while (i < j && arr[j] >= pivot) {
j--;
}
arr[i] = arr[j];
while (i < j && arr[i] <= pivot) {
i++;
}
arr[j] = arr[i];
}
arr[i] = pivot;
quick_sort(arr, left, i - 1);
quick_sort(arr, i + 1, right);
}
// 对二维数组进行排序
void sort_matrix(int matrix[][N], int n) {
for (int i = 0; i < n; i++) {
if (i % 2 == 0) {
// 偶数行从小到大排序
for (int j = 0; j < n; j++) {
for (int k = j + 1; k < n; k++) {
if (matrix[i][j] > matrix[i][k]) {
int temp = matrix[i][j];
matrix[i][j] = matrix[i][k];
matrix[i][k] = temp;
}
}
}
} else {
// 奇数行从大到小排序
for (int j = 0; j < n; j++) {
quick_sort(matrix[i], 0, n - 1);
for (int k = j + 1; k < n; k++) {
if (matrix[i][j] < matrix[i][k]) {
int temp = matrix[i][j];
matrix[i][j] = matrix[i][k];
matrix[i][k] = temp;
}
}
}
}
}
}
// 测试
int main() {
int matrix[N][N] = {{2, 4, 1}, {3, 5, 6}, {9, 8, 7}};
sort_matrix(matrix, N);
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
这个程序中,我们首先定义了一个 `quick_sort` 函数用来对一维数组进行快速排序,然后定义了一个 `sort_matrix` 函数来对二维数组进行排序。在 `sort_matrix` 函数中,我们使用了两层循环来遍历每一行,对于偶数行,我们直接对其进行从小到大的冒泡排序;对于奇数行,我们先使用 `quick_sort` 函数对其进行快速排序,然后再进行从大到小的冒泡排序。最后,我们在 `main` 函数中定义了一个测试用的二维数组,调用 `sort_matrix` 函数进行排序,并打印出排序后的结果。
阅读全文