我举个简单例子,一个一维数组int a[5]={3, 8, 4, 7, 6}
按降序排列以后是int b[5]={8, 7, 6, 4, 3}
最大的元素8在原来的数组中是第二位,7是第四位,等等
得到一个表示原来位置的数组int c[5]={2, 4, 5, 3, 1}
用C语言编程实现,简单讲一下思路即可
多谢帮助!满意答案有加分
简单的思路:
定义一个指针数组,找到b数组中元素在a数组中的地址,并存储在指针数组对应位置。
之后将指针数组内的地址值依次取出来与a数组首地址相减,得到的就是原来的位置。
利用的原理:数组内地址是连续的!
#include <stdio.h>