回 帖 发 新 帖 刷新版面

主题:一个简单的排序问题

一个数组里面的元素按大小把序号放另一个数组

比如{13,15,9,22},则对应的数组是{2,3,1,4}

我就想到先排序放一个临时数组,然后把未排序数组中的每一个元素与排序好的数组中每一个元素比较,只要找到匹配就把排序好数组中的下标放另一数组中。
 但我觉得很低效,想请教有什么好方法么?

回复列表 (共2个回复)

沙发

1.编号
{(0,13),(1,15),(2,9),(3,22)}
2.排序
{(2,9), (0,13), (1,15), (3, 22)}
3.把原来的序号作为下标,现在的次序号作为值建立数组
a[2] = 0;
a[0] = 1;
a[1] = 2;
a[3] = 3;

如何?

板凳


定义两个数组{13,15,9,22},{0,1,2,3}
在对第一个数组进行排序的时候,如有交换,相应的交换第二个数组里面的值

我来回复

您尚未登录,请登录后再回复。点此登录或注册