关于排序后原序号问题

一个数组的数,排序后要求其原序号

方法一:
如果数组总共有小于1000个数
所以给每个ti都*1001,在加上当前序号
可以保证排序的时候序号不干扰排序
又可以方便输出序号(只需mod1001输出序号,/1001 输出值)

int num=a[i]%1001;  //序号
int sum=a[i]/1001;  //值

样例:https://blog.csdn.net/weixin_44685629/article/details/103947288

方法二:定义两个相同的,一个不变(用于对照),一个用于排序

int n=in.nextInt();
long[] a=new long[1001];
long[] a2=new long[1001];
double sum=0;

for(int i=1;i<=n;i++) {
        	for(int j=1;j<=n;j++) {
        		if(a2[i]==a[j]) {
        			System.out.print(j+" ");  //序号
        			sum+=(n-i)*a2[i];         //值
        			a[j]=-1;
        			break;
        		}
        	}
        }

方法三:建立对象类,排序类
样例:https://blog.csdn.net/weixin_44685629/article/details/103938838

发布了68 篇原创文章 · 获赞 26 · 访问量 600

猜你喜欢

转载自blog.csdn.net/weixin_44685629/article/details/103947406