题解 | #图片整理#

图片整理

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),相对而言性能并不是很优秀。

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务