输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。 
你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。 

Input

输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。   
输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。

Output

对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行。

Sample Input

0051231232050775

Sample Output

0 77 12312320

// 忘记考虑两个5之间没有数字的情况
 #include<stdio.h>
#include<stdlib.h>
#include<string.h> void selc_sort(int a[], int len, int flag)
{
int i, j, t, min;
for(i=;i<len-;i++)
{
min=i;
for(j=i+;j<len;j++)
if(a[min]>a[j]) min=j;
if(min!=i)
{ t=a[i]; a[i]=a[min]; a[min]=t; }
}
if(flag)
{
for(i=;i<len/;i++)
{ t=a[i]; a[i]=a[len--i]; a[len--i]=t; }
}
} int main()
{
char a[], *p;
int b[], len, i, flag, length;
while(scanf("%s", a)!=EOF)
{
len=;
for(p=a;*p;p++)
if(*p=='')
{
*p='\0';
len++;
}
if(*(p-)) len++;
p=a;
for(i=;i<len;i++)
{
flag=;
while(*p=='')
{
p++;
if(*p=='\0')
{ flag=; break; }
}
if(flag)
{ b[i]=atoi(p); length=strlen(p)+; p+=length; }
else
{ b[i]=; p++;}
}
selc_sort(b,len,);
for(i=;i<len;i++)
{
if(i==len-) printf("%d\n", b[i]);
else printf("%d ", b[i]);
}
}
return ;
}

WA

 #include<stdio.h>
#include<stdlib.h>
#include<string.h> void shell_sort(int a[], int len)
{
int i, j, t, gap;
for(gap=len/;gap>;gap--)
for(j=gap;j<len;j++)
for(i=j;i-gap>=&&a[i]<a[i-gap];i-=gap)
{ t=a[i]; a[i]=a[i-gap]; a[i-gap]=t; }
} int main()
{
char a[], *p;
int b[], len, i, flag, length;
while(scanf(" %s", a)!=EOF)
{
len=;
for(p=a;*p;p++)
if(*p=='')
{
*p='\0';
len++;
}
if(*(p-)) len++;
p=a;
for(i=;i<len;i++)
{
flag=;
while(*p=='')
{
p++;
if(*p=='\0')
{ flag=; break; }
}
if(flag)
{
if(strlen(p))
{ b[i]=atoi(p); length=strlen(p)+; p+=length; }
else
{ p++; i--; len--; }
}
else
{ b[i]=; p++;}
}
shell_sort(b,len);
for(i=;i<len;i++)
{
if(i==len-) printf("%d\n", b[i]);
else printf("%d ", b[i]);
}
}
return ;
}

AC

4A - 排序的更多相关文章

  1. 基于visual Studio2013解决C语言竞赛题之0506选择排序

     题目

  2. heap表和iot表排序规则不同

    heap 和iot 对比 OBJECT_NAME OBJECT_TYPE --------------------------------------------------------------- ...

  3. 三白话经典算法系列 Shell排序实现

    山是包插入的精髓排序排序,这种方法,也被称为窄增量排序.因为DL.Shell至1959提出命名. 该方法的基本思想是:先将整个待排元素序列切割成若干个子序列(由相隔某个"增量"的元 ...

  4. SQL SERVER 字符串按数字排序

    需求是这样的: 数据库表里面有一个字段类型是nvachar,存的值是数字和字符混合的,要实现先按数字排序,再按字母倒序. 思路: 考虑这个字段的值是否是有规律可循的,把要按数字排序的部分转换为数字,再 ...

  5. 两排序数组的中位数 Median of Two Sorted Arrays

    2018-11-18 23:33:28 问题描述: 问题求解: 这个问题是一个比较有难度的可以使用二分搜索法求解的问题,如果采用朴素的解法进行merge再找中位数的话,其时间复杂度为O(n1 + n2 ...

  6. 在 Students 的 Index 页面增加列标题链接(排序),分页,过滤和分组功能

    3-1  在 Students 的 Index 页面增加列标题链接 为 Index 页面增加排序的功能,我们需要修改 Student 控制器的 Index 方法,还需要为 Student 视图增加代码 ...

  7. 24.C语言最全排序方法小结(不断更新)

    希尔排序: 该方法的基本思想是:先将整个待排元素序列切割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再 ...

  8. 个性化排序算法实践(五)——DCN算法

    wide&deep在个性化排序算法中是影响力比较大的工作了.wide部分是手动特征交叉(负责memorization),deep部分利用mlp来实现高阶特征交叉(负责generalizatio ...

  9. 含有对象的List集合实现字母数字混合排序

    List<PageData> varList = [{BOMCode=10A, mantotal=4}, {BOMCode=10B, mantotal=1}, {BOMCode=11A, ...

随机推荐

  1. 14.Java集合简述.md

    Java的集合类别,分为两类Collection和Map,Collenction包含了Set: •Set:无序,不可重复的集合 •List:有序,重复的集合 •Map:具有映射关系的集合 •Queue ...

  2. hadoop-1(单机模式配置)

    下一次的目标是: 把Hadoop的伪分布式配置出来 1:ssh免密码登陆第一步 2:安装java环境 3:安装hadoop2

  3. sublime text3 激活码——许可证

    亲测: 现在是公元2018年6月4日.晴 ``` ----- BEGIN LICENSE ----- sgbteam Single User License EA7E-1153259 8891CBB9 ...

  4. Resize CentOS Linux hard drive partition (centos 6.3 调整LVS磁盘大小)

    查看当前磁盘信息: [root@localhost ~]# df -h 文件系统          容量  已用  可用 已用%% 挂载点/dev/mapper/VolGroup-lv_root    ...

  5. 创建maven项目前的准备工作

    第二步: 在maven中的settings.xml文件中指定 2.1 本地仓库:计算机中一个文件夹,自己定义是哪个文件夹. 2.1 示例语法 <localRepository>D:/mav ...

  6. Delphi 语言

    自1995年Borland公司发布Delphi 1.0以来,Delphi受到很多开发者的亲睐,到1999年发布Delphi5,Delphi以其开发快捷.控件丰富.易于上手等优势吸引了众多的开发者,用户 ...

  7. 对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈

    对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈 “这部分同学博文总结没有写,实验作业没有提交.”——1.关于博文作业.实验作业教学功能的正解:学习知识.暴露问题.衔接课上.2 ...

  8. 大型运输行业实战_day14_1_webserivce简单入门

    1.简单使用 1.1.服务端 1.编写接口 package com.day02.sation.ws; /** * Created by Administrator on 1/12. */ public ...

  9. pyhton笔记(一):字符编码、变量

    一.什么是python? python是一种面向对象.解释型的计算机语言,它的特点是语法简洁.优雅.简单易学. 编译型语言: 写好代码之后把代码编译成二进制文件,运行时运行编译好的二进制文件.比如C. ...

  10. Light Probe

    [Light Probe] Light Probes provide a way to capture and use information about light that is passing ...