用C语言冒泡实现一个字符串,每次操作可以交换其中任意相邻两个字符的位置。把这个字符串变成字典序最小至少需要多少次操作。
时间: 2024-05-10 20:17:14 浏览: 49
C代码实例:字符串处理
4星 · 用户满意度95%
要使得字符串变成字典序最小,我们需要将字符串中的较小字符尽可能地放在前面,因此我们可以使用冒泡排序来实现。每次比较相邻的字符,如果前一个字符较大,则交换它们的位置。
具体实现如下:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[100];
int n, i, j, cnt = 0;
printf("请输入字符串:");
scanf("%s", str);
n = strlen(str);
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (str[j] > str[j+1]) {
char tmp = str[j];
str[j] = str[j+1];
str[j+1] = tmp;
cnt++;
}
}
}
printf("最少需要 %d 次操作才能将字符串变成字典序最小。\n", cnt);
return 0;
}
```
运行程序,输入一个字符串后,就可以得到需要的最少操作次数。
阅读全文