【算法】【Java实现】数组排序。根据数组的值大小降序排序,输出数组编号。相同的值,编号小的排前面。
【算法】【Java实现】数组排序。根据数组的值大小降序排序,输出数组编号。相同的值,编号小的排前面。
输入:
6
33 11 44 99 66 44
输出:
4 5 3 6 1 2
import java.util.Scanner;
/**
* 数组排序。根据数组的值大小降序排序,输出数组编号。相同的值,编号小的排前面。
*
* @author tzq
*
*/
public class ArraySort {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
while (in.hasNextInt()) { // 注意 while 处理多个 case
int x = in.nextInt();
int[] m = new int[x];
for (int i = 0; i < x; i++) {
m[i] = in.nextInt();
}
int[] n = new int[x];
for (int i = 0; i < n.length; i++) {
n[i] = i + 1;
}
sort(m, n);
for (int i = 0; i < n.length; i++) {
System.out.print(n[i] + " ");
}
}
in.close();
}
public static int[] sort(int[] m, int[] n) {
int tmp = 0;
for (int i = 0; i < m.length - 1; i++) {
for (int j = i + 1; j < m.length; j++) {
if (m[i] < m[j]) {
tmp = m[i];
m[i] = m[j];
m[j] = tmp;
// n 也换位置
tmp = n[i];
n[i] = n[j];
n[j] = tmp;
}
}
}
return m;
}
}