排序问题
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
输入10个整数,将它们从小到大排序后输出,并给出现在每个元素在原来序列中的位置。
输入
输入数据有一行,包含10个整数,用空格分开。
输出
输出数据有两行,第一行为排序后的序列,第二行为排序后各个元素在原来序列中的位置。
示例输入
1 2 3 5 4 6 8 9 10 7
示例输出
1 2 3 4 5 6 7 8 9 10 1 2 3 5 4 6 10 7 8 9
Arrays类提供的排序只能升序排,而且是对单调的数字或字母,但可以通过Comparator比较器来修改进行类排序,我想了一下也许这样可以实现对单一数字数组的降序排序?待会试一下
import java.io.*; import java.util.*; import java.math.*; import java.text.*; class node { public int tag,num; } class cmp implements Comparator<node> { public int compare(node A,node B) { return A.num-B.num; } } public class Main { public static void main(String[] args){ Scanner in=new Scanner(System.in); node[] a=new node[11]; for(int i=0;i<10;i++){ a[i]=new node(); a[i].num=in.nextInt(); a[i].tag=i+1; } Arrays.sort(a,0,10,new cmp()); for(int i=0;i<10;i++) if(i!=9) System.out.print(a[i].num+" "); else System.out.print(a[i].num); System.out.println(""); for(int i=0;i<10;i++) if(i!=9) System.out.print(a[i].tag+" "); else System.out.print(a[i].tag); System.out.println(""); } }
时间: 2024-08-12 09:55:05