请教C++ 数组排序问题?

遥感服务 2014-10-07 12:04:27
有这样一个数组 Array = { A, B, A, A, C, C, B},如何通过算法排序得到 Array = { A, A, A, B, B, C, C}和 Index = {0, 2, 3, 1, 6, 4, 5}。Index 是 Array排序之前与排序之后元素对应的索引变化,希望能记录到 Index 中。有没有高手帮忙设计个高速的算法。
...全文
153 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
SiGoYi 2014-10-08
  • 打赏
  • 举报
回复
使用stl的list,multimap,把index做为value,字母做为key,把这些都存到multimap中,之后再使用迭代器读出来就好了。 例: multimap<char, int> mm; mm.insert(make_pair('A', 1)); mm.insert(make_pair('B', 2)); mm.insert(make_pair('C', 3)); stl模板库中使用的算法都是最快的,不用自己费脑子去想。
hhhh63 2014-10-08
  • 打赏
  • 举报
回复
这个貌似用冒泡法比较好,先建一个索引数组{0,1,2,3,4,5,6},冒泡的同时,索引数组也跟着冒。

19,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧