输入多行,先输入要排序的人的个数,然后输入排序方法0(降序)或者1(升序)再分别输入他们的名字和成绩,以一个空格隔开

来源:互联网 发布:网络大众理财产品收益 编辑:程序博客网 时间:2024/05/16 15:39

查找和排序

题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩
      都按先录入排列在前的规则处理。

   例示:
   jack      70
   peter     96
   Tom       70
   smith     67

   从高到低  成绩            
   peter     96    
   jack      70    
   Tom       70    
   smith     67    

   从低到高

   smith     67  

   Tom       70    
   jack      70    
   peter     96      

输入描述:

输入多行,先输入要排序的人的个数,然后输入排序方法0(降序)或者1(升序)再分别输入他们的名字和成绩,以一个空格隔开

输出描述:

按照指定方式输出名字和成绩,名字和成绩之间以一个空格隔开

示例1

输入

30fang 90yang 50ning 70

输出

fang 90ning 70yang 50

import java.util.*;

public class Main{
    public static void main(String[] args){
        System.out.println("请输入人数: ");
        Scanner input=new Scanner(System.in);
        int n=Integer.parseInt(input.nextLine());
        System.out.println("请输排序方式,0或1: ");
        int sort;
        sort=Integer.parseInt(input.nextLine());
        if(n==0){
            return;
        }else{
            Person[] persons=new Person[100];
            for(int i=0;i<n;i++){
            persons[i]=new Person();
                String str=input.nextLine();               
                String[] ss=str.split(" ");
                int a=Integer.parseInt(ss[1]);                               
                persons[i].set(ss[0],a);                
            }
            Person temp=new Person();
            if(sort==1){
                for(int i=0;i<n-1;i++){
                    for(int j=0;j<n-1-i;j++){
                        if(persons[j].grade>persons[j+1].grade){
                            temp=persons[j];
                            persons[j]=persons[j+1];
                            persons[j+1]=temp;
                        }
                    }
                }
            }else{
                for(int i=0;i<n-1;i++){
                    for(int j=0;j<n-1-i;j++){
                        if(persons[j].grade<persons[j+1].grade){
                            temp=persons[j];
                            persons[j]=persons[j+1];
                            persons[j+1]=temp;
                        }
                    }
                }
            }
            for(int i=0;i<n;i++){
                System.out.println(persons[i].name+" "+persons[i].grade);
            }
        }
    }
}
class Person{
    String name;
    int grade;
    public void set(String name,int grade){
        this.name=name;
        this.grade=grade;
    }
    @Override
    public String toString() {
    // TODO Auto-generated method stub
    return "name: "+name+"grade: "+grade;
    }
}
阅读全文
0 0
原创粉丝点击