首页 > 代码库 > SDUT 1196-排序问题(java类排序)
SDUT 1196-排序问题(java类排序)
排序问题
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(""); } }
SDUT 1196-排序问题(java类排序)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。