排序笔记_1
2016-02-11 15:09
323 查看
1、排序算法类的模板:
2、排序成本模型:研究算法时,需要计算交换和比较 的次数,对于无交换和比较的算法,我们会计算访问数组的次数。
3、每一个想调用sort()方法的类(或者数据类型)必须实现Coparable接口,并且实现该接口下的compareTo()方法。
代码示例:
compareTo(Test o)方法必须实现一个全序关系:
自反性:对于所有的 v,v = v;
反对称性:对于所有的 v
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
相关文章推荐
- linux下面tomcat挂掉后重新启动的shell脚本
- Android之WebView优化之路
- java学习心得——自动回复功能
- 设计模式之模板方法模式
- HTTP与HTTPS握手的那些事
- test1
- Oracle 11g 关闭内存自动管理
- React JSX语法说明
- Educational Codeforces Round 7 C. Not Equal on a Segment(思维)
- js 中特殊形势的函数-匿名函数的应用
- Android应用安全开发之防范无意识的数据泄露
- bzoj2654 喵星球上的点名 后缀数组
- struts2学习笔记--ActionContext对象
- 窥探算法之美妙——统计整数二进制中1的个数
- 1024. Palindromic Number (25)
- 重头在来 -- dell1440 升级硬件,重装系统。
- android——error opening trace file: No such file or directory (2)
- 【C】指针变量
- 【C】指针变量
- ThinkPHP - session 数据库存储驱动