基于插入排序的objectsort的java实现

  1 package com.liu.Sort;
  2 
  3 public class objectSort {
  4     public static void main(String[] args)
  5     {
  6         int maxsize = 100;
  7         ArrayInOb arr;
  8         arr = new ArrayInOb(maxsize);
  9         
 10         arr.insert("evans", "hello", 12);
 11         arr.insert("liu", "yangchao", 43);
 12         arr.insert("wang", "shuo", 4);
 13         arr.insert("allience", "good", 54);
 14         arr.insert("we", "lgd", 87);
 15         arr.insert("ig", "dk", 32);
 16         arr.insert("find", "abondan", 45);
 17         arr.insert("alyin", "deby", 73);
 18         arr.insert("phythe", "c", 19);
 19         arr.insert("javascript", "c#", 23);
 20         
 21         arr.display();
 22         arr.insertSort();
 23         System.out.println();
 24         arr.display();
 25         
 26         arr.insertSortAge();
 27         System.out.println();
 28         arr.display();
 29     }
 30 }
 31 
 32 class ArrayInOb
 33 {
 34     private Person[] a;
 35     private int nElems;
 36     public ArrayInOb(int max)
 37     {
 38         a = new Person[max];
 39         nElems = 0;
 40     }
 41     
 42     public void insert(String last,String first,int age)
 43     {
 44         a[nElems] = new Person(last,first,age);
 45         nElems++;
 46     }
 47     
 48     public void display()
 49     {
 50         for(int j=0;j<nElems;j++)
 51             a[j].display();
 52         
 53     }
 54     
 55     public void insertSort()
 56     {
 57         int in,out;
 58         for(out=1;out<nElems;out++)
 59         {
 60             in=out;
 61             Person temp = a[in];
 62             while(in>0&&a[in-1].getLast().compareTo(temp.getLast())>0)
 63             {
 64                 a[in]=a[in-1];
 65                 --in;
 66             }
 67             a[in] = temp;
 68         }
 69     }
 70     
 71     public void insertSortAge()
 72     {
 73         int in,out;
 74         for(out=1;out<nElems;out++)
 75         {
 76             in=out;
 77             Person temp = a[in];
 78             while(in>0&&a[in-1].getAge()>temp.getAge())
 79             {
 80                 a[in]=a[in-1];
 81                 --in;
 82             }
 83             a[in] = temp;
 84         }
 85     }
 86 }
 87 
 88 class Person
 89 {
 90     private String lastname;
 91     private String firstname;
 92     private int age;
 93     public Person(String last,String first,int a)
 94     {
 95         lastname = last;
 96         firstname = first;
 97         age = a;
 98     }
 99     
100     public void display()
101     {
102         System.out.print("last name:"+lastname);
103         System.out.print(",first name:"+firstname);
104         System.out.println(",age:"+age);
105     }
106     
107     public String getLast()
108     {
109         return lastname;
110     }
111 
112     public String getLastname() {
113         return lastname;
114     }
115 
116     public void setLastname(String lastname) {
117         this.lastname = lastname;
118     }
119 
120     public String getFirstname() {
121         return firstname;
122     }
123 
124     public void setFirstname(String firstname) {
125         this.firstname = firstname;
126     }
127 
128     public int getAge() {
129         return age;
130     }
131 
132     public void setAge(int age) {
133         this.age = age;
134     }
135     
136     
137 }
原文地址:https://www.cnblogs.com/speaklessdomore/p/3656834.html