二维字符数组冒泡排序
时间: 2023-12-25 14:29:54 浏览: 97
以下是使用冒泡排序算法对二维字符数组进行排序的示例代码:
```python
def bubble_sort(arr):
rows = len(arr)
cols = len(arr[0])
for i in range(rows):
for j in range(cols-1):
for k in range(cols-j-1):
if arr[i][k] > arr[i][k+1]:
arr[i][k], arr[i][k+1] = arr[i][k+1], arr[i][k]
return arr
# 示例二维字符数组
arr = [['c', 'b', 'a'], ['f', 'e', 'd'], ['i', 'h', 'g']]
sorted_arr = bubble_sort(arr)
print(sorted_arr)
```
输出结果为:
```
[['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i']]
```
相关问题
请使用二维字符数组通过初始化的方式存储7国国 家名称,例如,France, Zambia, Canada 注,构成二维字符数组的一维数组需足以存 放任一国家名称,假设任一国家名称均<=99字符请设计一函数采用“冒泡”排序法,按照字符串比较规则,对这7国国家名称进行排序,请调用前述西数完成国家名称排序,结果依然存储在前述二位字符数组中,请使用char*指针访问各国国家名称,显示排序后的各国国家名称,每行显示1国家名称
代码如下:
```c++
#include <iostream>
#include <cstring>
using namespace std;
const int MAX_N = 7;
const int MAX_LEN = 100;
void bubble_sort(char arr[][MAX_LEN], int n) {
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (strcmp(arr[j], arr[j+1]) > 0) {
swap(arr[j], arr[j+1]);
}
}
}
}
int main() {
char countries[MAX_N][MAX_LEN] = {"France", "Zambia", "Canada", "Russia", "Japan", "Germany", "Brazil"};
bubble_sort(countries, MAX_N);
for (int i = 0; i < MAX_N; i++) {
cout << countries[i] << endl;
}
return 0;
}
```
输出结果:
```
Brazil
Canada
France
Germany
Japan
Russia
Zambia
```
用c语言请使用二维字符数组通过初始化的方式存储7国国 家名称,例如,France, Zambia, Canada 注,构成二维字符数组的一维数组需足以存放任一国家名称,假设任一国家名称均<=99字符,请设计一函数采用“冒泡”排序法,按照字符串比 较规则,对这7国国家名称进行排序,请调用前述西数完成国家名称排序,结果依然存储在前述二位字符数组中,请使用char*指针访问各国国家名称,显示排序后的各国国家名称,每行显示1国家名称; (1)请绘制“冒泡”排序法程序流程图;
对于这个问题,我们可以按照以下步骤实现:
1. 定义一个二维字符数组,存储7个国家名称,每个国家名称不超过99个字符。
```c
char countries[7][100] = {
"France",
"Zambia",
"Canada",
// ...
};
```
2. 定义一个排序函数,采用冒泡排序法对国家名称进行排序。
```c
void bubble_sort(char arr[][100], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (strcmp(arr[j], arr[j + 1]) > 0) {
char temp[100];
strcpy(temp, arr[j]);
strcpy(arr[j], arr[j + 1]);
strcpy(arr[j + 1], temp);
}
}
}
}
```
3. 调用排序函数进行排序,并使用char*指针访问各国家名称,显示排序后的结果。
```c
bubble_sort(countries, 7);
for (int i = 0; i < 7; i++) {
printf("%s\n", countries[i]);
}
```
流程图如下:
![冒泡排序程序流程图](https://i.imgur.com/7eHgD3R.png)
阅读全文