题解 | #图片整理#
图片整理
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),相对而言性能并不是很优秀。