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, ...
随机推荐
- js高级-递归调用
函数调用自身 求1-100的和 var sum = 0; for(var i = 1; i<=100; i++){ sum += i } console.log(sum) //自己写的递归 va ...
- 抖音爆火的随机点名Java实现原理,没有连接数据库
抖音爆火的随机点名Java实现原理,没有连接数据库 import java.util.Random; public class Array{ public static void main(Strin ...
- json数组转java对象
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>ison-lib</art ...
- dns隧道 dns2tcpd
有些网络的防火墙设置只允许端口53的UDP流量,就不能通过tcp搭建隧道,这种情况下我们可以通过UDP搭建DNS隧道,通过搭建一个DNS服务器委派的子域,这个子域因为使我们自己搭建的主机,这时候就可以 ...
- openstack(pike 版)集群部署(一)----基础环境部署
一.环境 1.系统: a.CentOS Linux release 7.4.1708 (Core) b.更新yum源和安装常用软件 # yum -y install epel-release ba ...
- 最小k度限制生成树
[题目描述] 给你一个图,n个点,m条边,求一颗生成树满足如下条件: (1)结点1的度不超过k. (2)在(1)条件下所求生成树最小. [算法引入] 最小k度限制生成树,就是指有特殊的某一点的度不能超 ...
- Unity5权威讲解+项目源码+MP4
扫码时备注或说明中留下邮箱 付款后如未回复请至https://shop135452397.taobao.com/ 联系店主
- 100-days:nine
Title: Boeing(波音飞机) crash isolates FAA as(伴随,随着) China leads push against Max(出事机型,即737 Max) crash n ...
- 关于nodejs中的async/await
作用: 将异步转为同步,其实有点语法糖,promise能实现的改为比较同步的方式表现. 用法: 两个关键字: async:放在函数声明前,用于表示这个函数含有异步过程,且此函数必定返回promise对 ...
- 分布式大数据多维数据分析(olap)引擎kylin[转]
Apache Kylin是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay 开发并贡献至开源社区.它能在亚秒内查询巨大的Hiv ...