有时间的话,每天写一点儿代码,不然真的会生疏的。
今天带给大家的是java实现的冒泡排序。。直接看代码吧,我相信,冒泡排序这么简单,不需要讲什么的了。
//自己定义一个类,用于测试的。。。比较的话,需要实现comparable接口
public class MyInfo implements Comparable<MyInfo> {
private int mid = 0;
private String mname = null;
public MyInfo(int id, String name) {
this.mid = id;
this.mname = name;
}
//通过id进行比较,如果想通过name进行比较,也可以。。。
@Override
public int compareTo(MyInfo o) {
// TODO Auto-generated method stub
if (this.mid < o.mid) {
return -1;
} else if (this.mid == o.mid) {
return 0;
} else {
return 1;
}
//通过name进行比较的代码,把上面的注释掉即可
//return this.mname.compareTo(o.mname);
}
//用于打印输出
@Override
public String toString() {
// TODO Auto-generated method stub
return mid + " --> " + mname;
}
}
接下来是冒泡排序的算法。
public class BubbleSort {
//冒泡的算法实现,这个就不讲了吧,还是比较简单的
//泛型(终于用泛型了),只要是实现了comparable接口的类都可以
public static<T extends Comparable<T>> void BubbleSort(T[] arr){
for(int i = 0;i<arr.length-1;i++){
for(int j = i+1;j<arr.length;j++){
if(arr[i].compareTo(arr[j])>0){
T tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
}
}
}
我靠???这么点儿???是的,就是这么点儿。。。
下面是用于测试的代码。。。OK了
public class TestBubble {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//第一,普通int类型的数据
//什么???是Integer??这个就是java的自动打包,因为我的bubblesort是针对对象的,java会将int类型自动打包成Integer。
Integer[] arr = { 2, 4, 1, 2, 1, 7, 2, 3, 4 };
BubbleSort.<Integer> BubbleSort(arr);
for (int i = 0; i < arr.length; ++i) {
System.out.print(arr[i] + " ");
}
System.out.println();
System.out.println("------------------------------------");
//自己定义的对象的实现。。。
MyInfo[] infos = { new MyInfo(001, "Bill Gates"),
new MyInfo(142, "Steve Jobs"), new MyInfo(673, "Bob Cash"),
new MyInfo(23, "Kobe Bryant"), new MyInfo(143, "Stevn Nash"),
new MyInfo(121, "Lerbron James"), new MyInfo(56, "Derick Rose") };
BubbleSort.<MyInfo> BubbleSort(infos);
for (int i = 0; i < infos.length; ++i) {
System.out.println(infos[i] + " ");
}
}
}
运行结果!应该是没问题的。。。好了,Code Per Day,今天的内容到此结束!