题解 | #图片整理#
图片整理
https://www.nowcoder.com/practice/2de4127fda5e46858aa85d254af43941
#include <stdio.h>
#include <string.h>
int main() {
char arr[1001];
scanf("%s",arr);
int len = strlen(arr);
for(int i=0;i<len;i++){
int flag=0;
for(int j=0;j<len-i;j++){
if(arr[j]<arr[j+1]){
char tmp = arr[j];
arr[j]=arr[j+1];
arr[j+1]=tmp;
flag=1;
}
}
if(flag==0) break;
flag=0;
}
for(int i=len-1;i>=0;i--)
printf("%c",arr[i]);
printf("\n");
return 0;
}
本题的提升之处在于优化排序以提高效率,这里采用的是冒泡排序,总体时间复杂度为O(n^2),相对而言性能并不是很优秀。