首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取排序整数数组的索引

获取排序整数数组的索引
EN

Stack Overflow用户
提问于 2012-02-02 23:19:26
回答 3查看 170关注 0票数 1

我有一个包含整数的数组,需要对其进行排序。但是,结果不应该包含整数值,而应该包含索引。即旧数组的新顺序。

例如: 10,20,30

结果应该是: 2,1,0

什么是实现这一目标的优化算法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-02 23:23:51

如果您将每个元素转换为(value, position)的元组并对其进行排序,则可以使用任何排序算法来实现这一点。

也就是说,[10, 20, 30]将变成[(10, 0), (20, 1), (30, 2)]。然后使用一个比较器对该数组进行排序,该比较器会查看元组的第一个元素,从而得到[(30, 2), (20, 1), (10, 0)]。从这里,您可以简单地获取每个元组的第二个元素,以获得您想要的内容,即[2, 1, 0]。(假设您想要反向排序。)

票数 2
EN

Stack Overflow用户

发布于 2012-02-02 23:23:26

不会与任何其他排序算法不同,只需修改它,使其构建或接受一个索引数组,然后操作数据和索引数组,而不仅仅是数据。

票数 0
EN

Stack Overflow用户

发布于 2012-02-02 23:27:15

您可以创建一个指向原始整数数组的指针数组,执行合并排序或任何您认为最适合的排序算法(使用指针处的值),然后向下运行列表,根据每个指针相对于包含原始整数数组的已分配块的开头的地址计算索引。

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

https://stackoverflow.com/questions/9114820

复制
相关文章

相似问题

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