字符串技巧排序

算法-22-字符串的排序算法(四种排序) 目录 1、字符串 1.1、属性 1.2、字母表 2、字符串排序方法 3、键索引计数法 3.1、第一步:频率统计 3.2、第二步:将频率转换为索引 3.3、第三步:数据分类排序 3.4、第四步:回写排序好的数组 4、低位优先的字符串排序 5、高位优先的字符串排序 1、字符串 String 是由一系列字符组成的。字符的类型是 char,可能有 2的16次方个值。数十年以来,... 阅读详情

排序

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 2200    Accepted Submission(s): 537


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

你的任务是对这些分割得到的整数依从小到大的顺序排序。

 

Input
输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。  

输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。
 

Output
输出数据也只有一行,是分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开。
 

Sample Input
0051231232050775
 

Sample Output
0 77 12312320

 

 



#include <stdio.h>
#include <string.h>
#define MAX 1001
long a[MAX]={0};
int la=0,lst=0 ;
char c,st[MAX]={'/0'};
long pow_10(int x)
{
     long res=1,i;
     for(i=1 ; i<= x ; i++)
     res *= 10 ;
     return res ;
}
void makerp()
{
     int i,j,rp ;
     la ++ ;
     for(i= 1,j=lst;i<= lst ; i++,j--)
      if ( (rp = st[i]-'0') > 0)
         a[la] += rp*pow_10(j-1) ;
     
}
void sort()
{
     int i,j,t ;
     for(i=1 ; i< la ; i++)
     for(j=i+1 ; j<=la ; j++)
     if (a[j] < a[i])
     {
              t = a[j] ;
              a[j] = a[i] ;
              a[i] = t ;
     }
}

int main(void)
{
    int s=0,t=0;
    int i,j,k ;
   
    while ( ( c=getchar()) != '/n')
    {
          if ( c == '5')
          {
               if ( lst > 0)
               {
               makerp();
               memset(st,'/0',sizeof(st));
               lst = 0 ;
               }
              
               while( (c = getchar()) != '5' && c != '/n')
               st[++lst] = c ;
              
               if ( lst > 0)
               {
               makerp();
               memset(st,'/0',sizeof(st));
               lst = 0 ;
               }
           }
           else if(c != '/n')
           {
               st[++lst] = c ;
           }
        
          if ( c =='/n')
          break ;
     }
   
    if ( lst > 0)
     {
               makerp();
               memset(st,'/0',sizeof(st));
               lst = 0 ;
     }
   
    sort();
   
    
    for(i=1 ; i<= la ; i++)
    printf("%ld ",a[i]);
    printf("/n");
    system("pause");
    return 0 ;
}
   

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PTA字符串排序实战:从输入处理到冒泡排序优化技巧 本文以PTA平台经典的英文单词排序题目为例,深入探讨了C语言中字符串排序的实战技巧。从健壮的输入处理与数据验证,到冒泡排序的深度优化(如预计算长度、索引排序),再到应对更大数据量时的高级策略(如稳定化qsort、桶排序),旨在帮助读者写出高效、优雅且符合工程规范的代码。 阅读详情

相关推荐

29、Perl 字符串处理与排序技巧

本文详细介绍了 Perl 在字符串处理与排序方面的强大功能。内容涵盖了字符串查找、截取与修改操作,数据格式化方法,以及各种排序技巧,包括基本排序、多级排序和 Unicode 处理。通过结合示例代码与最佳实践,帮助开发者高效处理文本数据与复杂排序场景。

cheese的博客 80

2022-04-23 字符串排序法三则

经典排序如快排,堆排,插排等都是普世的排序,对于字符串这种特定的排序类型,还有一些比较讨巧的方法。 为啥还有讨巧的方法,快排已经优雅的不行不行的了。 因为string不是一个基本的原子式不可拆分的类型,他是由一串字符组成。 再优雅的基于比较的排序也要基于一个一个字符的比较。 基本的排序方法是一个一个的比较,但针对字符串排序的特有方法则是更接近于位图排序。 我们知道,char类型的字符可以转换为0-255的数值,这个字符就可以映射到一个数组之中,我们第一步可以取所有字符串的第一个字符,映射到一个大小为 256

老林的博客 542

VB编程中的排序技巧:从文本框和字符串中提取并排序数字

在数据处理的世界里,排序算法扮演着至关重要的角色。它们是编程语言中最基础且常见的算法之一,广泛应用于数据排序、搜索优化、内存管理和资源分配等多个领域。简单排序算法,如冒泡排序、选择排序和插入排序,虽然在效率上可能不及更高级的算法如快速排序或归并排序,但在学习和理解算法原理方面提供了良好的开端。它们操作直观,易于实现,且对初学者来说是理解更复杂排序逻辑的基石。本章将带你快速回顾这些简单排序算法的核心思想和基本实现,为你深入探讨排序算法打下坚实的基础。同样适用于自定义对象数组。为此,需要对象类实现。

weixin_29097457的博客 952

C++字符串数组排序技巧

#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<algorithm> #include<vector> #include<map> #include<unordered_map> #include<string> #include<unordered_set> #include<iterator> #include<sstream&g.

X丶 的博客 6032

字符串搜索与排序:程序设计的实用技巧

本文深入探讨了在程序设计中进行字符串搜索和排序的方法,包括使用Array::Sort()方法进行排序,以及String类中的Compare()方法来比较字符串。通过一个视频商店库存管理的实例,展示了如何结合ListView控件和搜索日志来提高程序的效率和用户体验。

weixin_36369848的博客 287

远程桌面报‘数据加密错误‘?可能是网卡设置惹的祸(附TCP校验关闭教程)

本文深入分析远程桌面连接中出现的'数据加密错误'问题,指出网卡设置可能是根本原因,并提供详细的TCP校验关闭教程。通过禁用网卡高级属性中的'TCP校验和IPv4'与'IPv4承载卸载'功能,可有效解决RDP协议与硬件加速的兼容性问题,适用于Windows和Linux系统。

view3的博客 276

Java技巧——实现Comparator接口来进行字符串逆向排序

本文已搬家至【Java学习笔记】实现Comparator接口来进行字符串逆向排序

gnuhpc的专栏 1676

Oracle21C Windows安装全攻略:从下载到配置环境变量,避开ORA-12514的坑

本文详细介绍了Oracle21C在Windows系统上的安装全流程,包括环境准备、安装包验证、分步安装指南、数据库实例创建与配置、环境变量精准配置等关键步骤,特别针对常见的ORA-12514错误提供了解决方案,帮助用户顺利完成安装并避免常见问题。

ooo22的博客 415

uva10132 字符串数组的qsort排序技巧

首先声明uva服务器又崩了,没有提交所以不知道这道题能否AC,思路可以参考一下,不难。 因为文件都相同,且恰好分成两部分,所以我先将所有字符串按长度排序,最短串和最长串组成的一定是源文件!如果有多个最短串和最长串,就要排列组合去试了。 在编写qsort的比较函数时遇到了问题,百度后解决了,最主要就是*(char**)这里,容易写错,如果只写char*,那是指向字符的指针,char**才是指向指

monkeyduck的专栏 1513

AI Agent评估:指标、策略与最佳实践

AI智能体正逐渐融入到各个领域,从日常的对话助手到复杂的工作流程自动化,其应用范围不断拓展。然而,确保这些智能体能够可靠、高效地完成任务至关重要,这就使得AI智能体评估成为了人工智能发展过程中不可或缺的一环。本文将深入探讨AI智能体评估的指标、策略以及最佳实践,为读者全面解读这一关键领域。

llm_way的博客 3498

第五章 PCIe介绍 5.1-5.7

为什么SSD要用PCIe接口?因为它快,比SATA快。通道,PCIe最多可以有32个通道。两个设备之间的PCIe连接,叫做一个Link。如下图,设备A和设备B是个双向连接,两个PCIe设备之间,有专门的发送和接收通道,数据可以同时往两个方向传输,PCIe Spec称这种工作模式为,可以理解为。和PCIe一样,SATA有独立的发送和接收通道。但与PCIe工作模式不一样,同一时间,SATA只有一条通道可以进行数据传输。这种工作模式称为。与SATA单通道不同,PCIe连接可以通过增加通道数扩展带宽。

fengbaobaola的博客 2968

输入n个字符串字典序排序_30个Python奇淫技巧集

今天小编熬夜整理了一份,内容是基础篇覆盖了字符串,列表,字典和基础序列容器。不要小看青铜篇,这份资料里面收集了很多奇淫技巧,很多小编也是第一次遇到,非常值得收藏。下面我挑选几个给大家看一下,小编觉得都是非常经典的代码技巧。01.字符串拼接-生成器法用生成器yield来做字符串的拼接,我还是第一次遇到,在项目里面并不常见,但是如果是复杂的业务逻辑,需要缓冲字符串到时候可以试试。02.字符串关键字搜索...

weixin_39878760的博客 305

手把手教你用gmid方法设计二级运放:从理论到仿真全流程(附避坑指南)

本文详细介绍了使用gmid方法设计二级运放的全流程,从理论到仿真实践,特别针对初学者常见问题提供避坑指南。通过系统化的晶体管尺寸确定技术,帮助工程师在性能、功耗和面积之间找到最佳平衡点,适用于模拟集成电路设计中的关键模块开发。

weixin_29213525的博客 271

拼数详解|字符串拼接与自定义排序技巧(洛谷P1012)

掌握字符串拼接比较,3分钟解决NOIP经典拼数问题,附C++竞赛级代码

stillwatersss的博客 993

第21章 分层架构软件测试

技术人员和客户代表对代码服务相关的技术进行详细的交流,由此确定代码审计的方案(哪些代码要审计、用什么方式审计、审计的时间、审计的要求等)代码审计报告提交和沟通之后,跟开发人员针对代码审查发现的问题进行修改,然后代码审查人员进行回归的检查,然后提交复查的报告;本层不需要了解其它层的实现细节,只需要考虑与本层相关的两层之间的接口和调用的情况。然后对客户要求的功能点进行人工的代码审查,对源代码的扫描结果进行人工的分析和确认;结合自动化扫描的结果和人工审查的结果生成测试对象的代码审查报告,最后提交给客户;

李黏黏的博客 3270

振动分析-46-设备振动监测和故障诊断能力提升需要理解和掌握的知识体系

提升振动分析能力对于确保机械设备的高效运行和预防故障至关重要。

qq_20466211的博客 664

python字符串排序_Python 按字符串排序

本文将讨论的是,如何将一个字符串组成的列表,比如 ['abc','cba','bac'] ,按照特定的条件(比如首字母、尾字母、或者长度)灵活的排序?目录直接排序由一些字符串组成的 list ,sort( )方法可以直接用来对字符串排序:>>> a = ["John Smith", "Alice Young", "John Scott Brown"]>>> a.sort()>>> a['Alice...

weixin_39847244的博客 2415

复旦微FMSH_Procise安装流程

双击FMSH_Procise_2021.1_full_win64_202103151947.exe 选择好安装目录后点击“Next” 一路next 点install 找技术支持代为申请 License,将电脑MAC地址发过去,将获得的 license 拷贝到 procise 安装目录“data”文件夹,即可使用 procise。点license manager和copy license 将licence,.lic文件放到这个目录 要是报下面错误要...

wangjie36的博客 1万+

Python小技巧:一种字符串的排序方式

假设有一个序列,数据为:[‘n1’, ‘n2’, ‘n10’, ‘n11’, ‘n21’, ‘n3’, ‘n13’, ‘n20’, ‘n23’],排序后需要达到这个效果:[‘n1’, ‘n2’, ‘n3’, ‘n10’, ‘n11’, ‘n13’, ‘n20’, ‘n21’, ‘n23’]。实现代码如下,在代码中,我给前缀的数字乘上了255,后缀的数字没有大于255的,所以能够实现上述的排序结果。,那么我们可以给前缀数字赋一个很大的权重,再加上后缀,组成的数字就是排序的依据。

Python热爱者的博客 843

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

中对中文字符串进行排序_小技巧|Word中对表格数据进行排序

某些情况下,Word中会插入不同的表格用来对数据进行说明,而表格也并非完全一成不变的,需要根据不同的数据类型进行相应的排序。一般情况下,可能的操作是把Word中的表格复制到Excel中,使用Excel的排序功能按要求排好后,再复制粘帖回来。而实际上Word也是支持对表格进行排序的,是不是以前都不太了解?Word支持按拼音、笔划、数字、日期四种类型进行排序。各种类型操作上大体类似,步骤一样,差别就是...

weixin_39796140的博客 330

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Pandas的排序、字符串日期处理和批量合并拆分技巧

本文介绍了pandas库中几个实用功能:1) 数据排序,包括Series和DataFrame的单列/多列排序;2) 字符串与日期处理,展示了str和dt属性的使用方法;3) DataFrame连接操作,重点讲解concat函数参数;4) Excel表格批量合并与拆分技巧。通过代码示例演示了如何实现多条件排序、日期格式转换、表格纵向/横向合并,以及基于文件目录的批量处理流程,为数据处理工作提供了高效解决方案。

种一棵树最好的时间是十年前,其次是现在 1366

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

sql 字符串排序_性能优化技巧:前半有序时的排序

一、 问题背景与适用场景在对数据集进行排序运算时,有时会遇到这样一种场景:数据集T已经按字段a有序,而字段b无序,现在我们要将T按a、b排序,我们称之为前半有序(a有序)的排序。此时我们能想到一种优化的排序方法:从T中先取出a值相同的一组记录,再这一组内对b排序。然后再依次取出下一组a值相同的记录,重复这个动作,直到完成T中所有记录的排序。这种方法的好处是不需要对T中所有记录进行大排序,一次只需取...

weixin_39884877的博客 232
上一篇: 整数分解之和最大问题(全分成3,少分成2)
下一篇: 整数划分问题(C语言求解)
oopos
博客等级 码龄19年 21粉丝 50原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值