import java.util.Arrays;
/**
* 用冒泡排序对任何对象排序
*extends 在这里不表示继承的关系,而是类型的限定
*Comparable类 用于比较两个对象的大小
*
* @param x 对象
*/
class Person_ implements Comparable<Person_>{
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Person_(int age) {
super();
this.age = age;
}
@Override
public String toString() {
return " [age=" + age + "]";
}
@Override
public int compareTo(Person_ o) {
if(this.age == o.age)
return 0;
else if(this.age > o.age)
return 1;
else
return -1;
}
}
public class BubbleSort {
public static void main(String[] args) {
Person_ p1 = new Person_(12);
Person_ p2 = new Person_(1);
Person_ p3 = new Person_(112);
Person_ p4 = new Person_(42);
Person_ p5 = new Person_(15);
Person_ p[] = { p1, p2, p3, p4, p5 };
System.out.println("排序之前");
System.out.println(Arrays.toString(p));
System.out.println("排序之后");
selectSort(p);
System.out.println(Arrays.toString(p));
}
public static <T extends Comparable<T>> void bubbleSort(T[] x) {
T temp;
int size = x.length;
for (int i = 0; i < size - 1; i++) {
for (int j = 0; j < size - i-1; j++) {
if (x[j].compareTo(x[j + 1]) > 0) {
temp = x[j];
x[j] = x[j + 1];
x[j + 1] = temp;
}
}
}
}
public static <T extends Comparable<T>> void selectSort(T[] x){
T temp;
int size = x.length;
int k = 0;
for(int i=0; i<size-1; ++i)
{
k = i;
for(int j=i+1; j<size; ++j)
{
if(x[k].compareTo(x[j]) > 0)
k=j;
}
if(k!=i)
{
temp = x[k];
x[k] = x[i];
x[i] = temp;
}
}
}
}
java泛型----冒泡排序+选择排序
最新推荐文章于 2022-08-16 21:53:20 发布