首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数字和字符串排序

数字和字符串排序
EN

Stack Overflow用户
提问于 2015-09-30 10:45:26
回答 2查看 62关注 0票数 0

我想对一些number+string组合进行排序,但排序将基于该组合中的数字。你能建议一个最优的解决方案吗?

假设我的字符串是:

12 Masdf

4 Oasd

44倍

诸若此类。排序将基于数字,如12,4,44,排序后,我必须显示完整的字母数字字符串。

由于程序将在数千个数据上运行,因此我不想拆分字符串,并在每次迭代中比较数字。我的计划是提取数字并将其放入一个数组中,然后对该数组进行排序。排序完成后,我想放回带有相关字符串的数字,并将它们保存在字符串数组中以供显示。它应该在C++中完成。应该应用算法-插入排序、快速排序、合并排序等。

EN

回答 2

Stack Overflow用户

发布于 2015-09-30 11:18:46

创建一个类来存储完整的字符串和数字。将类设置为Comparable。将字符串列表转换为list of Class。使用相关的排序方法对列表进行排序。迭代列表并打印字符串字段。

对不起,这是对Java的回答,因为您已将其标记为Java。替换/删除任何对C++有好处的Comparable

票数 0
EN

Stack Overflow用户

发布于 2015-09-30 11:25:47

我将假设这两个部分位于不同的变量中,而不是作为一个字符串放在一起(如果它们是一个字符串,则可以将它们存储在一个列表中)。

首先考虑一个Map。地图的每个“桶”都可以用一个数字来表示。在每个map存储桶中都有一个列表中的一串字符串。(请注意,这也可以用一个数组来解决,特别是如果Integer部分总是在某个固定值之下),java等效项将如下所示:

代码语言:javascript
复制
    Map map = new HashMap<Integer,ArrayList<String>>();

为了对这个自定义集合进行排序,首先将在返回列表的映射上搜索值的整数部分。列表中的每一项都将具有相同的起始编号。所以我们现在搜索列表,值的字符串部分(我假设列表是排序的,所以你可以做任何你想要的排序,比如: selection/quicksort)。

这种搜索的优点意味着,如果在Hashmap中找不到该数字,您可以立即知道没有对应的字符串部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32856901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档