4A - 排序
你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。
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 - 排序的更多相关文章
- 基于visual Studio2013解决C语言竞赛题之0506选择排序
题目
- heap表和iot表排序规则不同
heap 和iot 对比 OBJECT_NAME OBJECT_TYPE --------------------------------------------------------------- ...
- 三白话经典算法系列 Shell排序实现
山是包插入的精髓排序排序,这种方法,也被称为窄增量排序.因为DL.Shell至1959提出命名. 该方法的基本思想是:先将整个待排元素序列切割成若干个子序列(由相隔某个"增量"的元 ...
- SQL SERVER 字符串按数字排序
需求是这样的: 数据库表里面有一个字段类型是nvachar,存的值是数字和字符混合的,要实现先按数字排序,再按字母倒序. 思路: 考虑这个字段的值是否是有规律可循的,把要按数字排序的部分转换为数字,再 ...
- 两排序数组的中位数 Median of Two Sorted Arrays
2018-11-18 23:33:28 问题描述: 问题求解: 这个问题是一个比较有难度的可以使用二分搜索法求解的问题,如果采用朴素的解法进行merge再找中位数的话,其时间复杂度为O(n1 + n2 ...
- 在 Students 的 Index 页面增加列标题链接(排序),分页,过滤和分组功能
3-1 在 Students 的 Index 页面增加列标题链接 为 Index 页面增加排序的功能,我们需要修改 Student 控制器的 Index 方法,还需要为 Student 视图增加代码 ...
- 24.C语言最全排序方法小结(不断更新)
希尔排序: 该方法的基本思想是:先将整个待排元素序列切割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有序(增量足够小)时,再 ...
- 个性化排序算法实践(五)——DCN算法
wide&deep在个性化排序算法中是影响力比较大的工作了.wide部分是手动特征交叉(负责memorization),deep部分利用mlp来实现高阶特征交叉(负责generalizatio ...
- 含有对象的List集合实现字母数字混合排序
List<PageData> varList = [{BOMCode=10A, mantotal=4}, {BOMCode=10B, mantotal=1}, {BOMCode=11A, ...
随机推荐
- 29.Spring-基础.md
目录 1.目的和作用 [toc] 2.概念 2.1框架的设计 2.2控制反转 2.3AOP [toc] 3. 3.1Spring六大模块 [toc] 1.目的和作用 解决对象的创建和以及对象依赖关系的 ...
- C:\\MFC控件大小随窗体大小而改变
一.大小和位置都改变 1.首先为窗体类添加CRect m_rect,该成员变量用来记录窗体的当前大小. 2.在类向导里面(Ctrl+W),为窗体添加消息WM_SIZE的响应函数OnSize(): 注意 ...
- 远程批量查看windosws操作系统3389端口的开放情况
本文只提供思想.具体可以根椐情况拓展. 前提是需要配置远程主机的SNMP协议.主要是共同体哟. 脚本使用: 1.拷贝check_tcp到脚本执行的主机中或在此主机中安装nagios; 2.保持list ...
- Redis入门及主从配置
1.Redis入门简介 Redis是一个开源的使用ANSI C语音编写.支持网络.可基于内存亦可持久化的日志型,Key-Value数据库.支持存储的value类型包括 string(字符串).list ...
- SQL server 基本语法
文字摘自https://www.cnblogs.com/chaoa/articles/3894311.html 一.定义变量 --简单赋值 declare @a intset @a=5 print @ ...
- 05_ssm基础(三)之Spring基础
11.spring入门引导 12.spring_HelloWord程序 实现步骤: 0.找到spring压缩包,并解压 1.拷贝jar包 2.添加主配置文件(官方文档约28页) 3.在测试中使用 13 ...
- html5新增标签做基本布局
结构标记 ***** 做布局 1.<header>元素 <header></header> ==> <div id="header" ...
- Javascript Iterator
[Javascript Iterator] 1.@@iterator Whenever an object needs to be iterated (such as at the beginning ...
- java中继承thread类的其他类的start()方法与run()方法
java中继承thread或者实现runnable接口的类必须重写run()方法. 如果其执行了start()方法,其实就是启动了线程的run()方法. 注意:如果是实现runnable接口的类是没有 ...
- Idea单元测试Junit Generator设置
0. setting--->plugins--->brose repostories-->输入JUnitGenerator V2.0 1.junit generator自动生成测试代 ...