一个排序算法

来源:百度知道 编辑:UC知道 时间:2024/06/24 04:59:18
我想自己写一个排序算法.不想用java.util.Collections提供的sort方法,我自己定义一个Name类,属性为firstName和lastName,这个类实现了Comparable
这个接口,我自己也重写了compareTo(Object o)这个方法,可是在排序时出问题了,我有些不理解,我的sort方法哪里有错误,
//第二种写法
public static void sort(List list) {
Object[] obj=list.toArray();
System.out.println(obj);
Name[] n=(Name[])obj;
for(int i=0;i<n.length;i++) {

for(int j=i+1;j<n.length;j++) {
if(n[i].compareTo(n[j])>0) {
Name temp; temp = n[i];
n[i] = n[j];
n[j] = temp;
}

}
}
}

你在Object[] obj=list.toArray(); 这后面要加上
Arrays.sort(obj);
再for循环打印obj就OK了

把排好的array数组写回list就对了。不然list的值都没动过!

算法没啥问题。
第一眼看起来像冒泡,其实不是。更像是选择排序,呵呵

是的。 排了 n[] 但没有回归!