您的位置:首页 > 其它

排序笔记_1

2016-02-11 15:09 323 查看
1、排序算法类的模板:

public class Example{
public static void sort(Comparable[] a){//排序代码
...
}

private static boolean less(Comparable v, Comparable w){//对元素进行比较
return v.comparaTo(w);
}

private static void exch(Comapable[] a, int i, int j){//对元素进行交换
Comparable t=a[i];
a[i]=a[j];
a[j]=t;
}

private static void show(Comparable[] a){
for(int i=0;i<a.length;i++){
System.out.print(a[i]);
}
System.out.print();
}

public static boolean isSorted(Comaprable[] a){//判断是否成功进行了排序
for(int i=1;i<a.length;i++){
if(less(a[i], a[i-1]))
return false;
}
return true;
}
}


2、排序成本模型:研究算法时,需要计算交换和比较 的次数,对于无交换和比较的算法,我们会计算访问数组的次数。

3、每一个想调用sort()方法的类(或者数据类型)必须实现Coparable接口,并且实现该接口下的compareTo()方法。

代码示例:

public class Test implements Comparable<Test>{

public int compareTo(Test o) {//定义目标类型对象的自然次序
...
return 0;
}

}


compareTo(Test o)方法必须实现一个全序关系

自反性:对于所有的 v,v = v;

反对称性:对于所有的 v
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: