(八)简单排序-对象的插入排序(person)

对象的插入排序(对person类型对象进行插入排序)


person.java(对象类)


package JavaApp_ObjectSort;

public class Person {
  private String lastName;
  private String firstName;
  private int age;
  public Person(String last,String first,int a){
	  lastName=last;
	  firstName=first;
	  age=a;
  }
  public void dispalyPerson(){
	  System.out.print(" Last Name"+lastName);
	  System.out.print(",First Name"+firstName);
	  System.out.println(",Age"+age);
  }
  public String getLat(){
	  return lastName;
  }
  public int getAge(){
	  return age;
  }
}


ArrayInOb.java(对象数组类)



package JavaApp_ObjectSort;

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 j = 0; j < nElems; j++)
			a[j].dispalyPerson();
		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].getLat().compareTo(temp.getLat()) > 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;
		}
	}
}



ObjectSortApp.java(测试类)


package JavaApp_ObjectSort;

public class ObjectSortApp {

	public static void main(String[] args) {
        int maxSize=100;
        ArrayInOb arr;
        arr=new ArrayInOb(maxSize);
        arr.insert("Evans", "patty", 24);
        arr.insert("Smith", "doc", 59);
        arr.insert("Smith", "lo", 37);
        arr.insert("Smith", "pu", 43);
        arr.insert("yee", "tom", 29);
        arr.insert("ff", "sato", 72);
        arr.insert("cer", "henry", 22);
        arr.insert("vans", "minh", 18);
        arr.insert("Evans", "luc", 2);
        System.out.println("按姓排序前");
        arr.display();
        
        
        arr.insertionSort();//按姓排序
        System.out.println("按姓排序后");
        arr.display();
        
        System.out.println("按年龄排序后");
        arr.insertionSortAge();//按年龄排序
        arr.display();
	}

}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值