对象的插入排序

来源:互联网 发布:money理财通mac版 编辑:程序博客网 时间:2024/05/01 20:48
定义一个Person类
public class Person {private String lastName;private String firstName;private int age;public Person(String last,String first,int a){this.lastName=last;this.firstName=first;this.age=a;}public void displayPerson(){System.out.print("Last Name:"+lastName+" First Name:"+firstName+" Age:"+age);}public String getLast(){return lastName;}public int getAge(){return age;}}


再定义一个插入排序的类,里面有insert等方法

public class ArrayInOb {private Person[] a;private int nElems;public ArrayInOb(int max){a=new Person[max];nElems=0;}public void insert(String last,String first,int age){a[nElems]=new Person(last, first, age);nElems++;}public void display(){for(int i=0;i<nElems;i++){a[i].displayPerson();}System.out.println();}public void insertionSort(){int in,out;for(out=1;out<nElems;out++){Person temp=a[out];in=out;while(in>0&&a[in-1].getLast().compareTo(temp.getLast())>0){a[in]=a[in-1];in--;}a[in]=temp;}}public void insertionSortAge(){int in,out;for(out=1;out<nElems;out++){Person temp=a[out];in=out;while(in>0&&(a[in-1].getAge()>temp.getAge())){a[in]=a[in-1];in--;}a[in]=temp;}}}


主程序
public class ObjectSortApp {public static void main(String[] args){int maxSize=100;ArrayInOb arr;arr=new ArrayInOb(maxSize);arr.insert("a", "b",24);arr.insert("c", "d",59);arr.insert("e", "f",20);arr.insert("g", "h",30);arr.insert("a", "j",40);arr.display();arr.insertionSort();arr.display();arr.insertionSortAge();arr.display();}}



0 0