排序笔记_1

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值