题解 | #图片整理#

图片整理

http://www.nowcoder.com/practice/2de4127fda5e46858aa85d254af43941

方法一:冒泡排序


#include <stdio.h>

int main()
{
    char str[1000] = {0};
    scanf("%s", str);
    int len = strlen(str);
    char temp = '0';
    for(int i = 0; i < len; i++)
    {
        for(int j = i+1; j < len; j++)
        {
            if(str[i]-'0' > str[j]-'0')
            {
                temp = str[i];
                str[i] = str[j];
                str[j] = temp;
            }
        }
    }
    printf("%s\n", str);
    return 0;
}

方法二:快速排序

#include <stdio.h>

/*
函数功能:快速排序
array:要排序的数组
beg:数组头
end:数组尾
*/
int quick_sort(char *array, int beg, int end)
{
    int flag = 0;    //前面位置为空
    int x = beg;
    int y = end;
    if(beg > end)
    {
        return -1;    //嵌套循环退出条件
    }
    int base = array[beg];    //选取基准值
    while(x < y)
    {
        if(flag == 0)
        {
            /* 从序列后面遍历, 比基准值小的数放到前面 */
            if(array[y] >= base)
            {
                y--;
                continue;
            }
            array[x] = array[y];
            x++;
            flag = 1;
        }
        else
        {
            /* 从序列前面遍历, 比基准值大的数放到后面 */
            if(array[x] <= base)
            {
                x++;
                continue;
            }
            array[y] = array[x];
            y--;
            flag = 0;
        }
    }
    array[x] = base;    //把基准值放到x的位置上
    quick_sort(array, beg, x-1);
    quick_sort(array, x+1, end);
    return 0;
}

int main()
{
    char str[1000] = {0};
    scanf("%s", str);
    int len = strlen(str);
    
    quick_sort(str, 0, len-1);

    printf("%s\n", str);
    return 0;
}
全部评论

相关推荐

昨天 09:08
裁应届生,一分钱补偿没有,离职了还脑控你,跟踪你,定位你,丁东服务是搞系每一个人
牛客吹哨人:建议细说...哨哥晚点统一更新到黑名单:不要重蹈覆辙!25届毁意向毁约裁员黑名单https://www.nowcoder.com/discuss/1317104
叮咚买菜稳定性 10人发布 投递叮咚买菜等公司10个岗位 >
点赞 评论 收藏
分享
object3:开始给部分🌸孝子上人生第一课了
点赞 评论 收藏
分享
点赞 1 评论
分享
牛客网
牛客企业服务