数据结构和算法分析(第三版)练习
| | 分类于 notebook
字数统计:340字 | 阅读时长:1 分钟 阅读量: 0 | 评论量: 0

数据结构和算法分析(第三版)练习

notebook with 0 comments
Word count: 340 | Reading time: 1min

recursive

自动装箱和拆箱

class BoxingDemo{
    public static void main(String[] args) {
        // Cell类中的set方法传入的是Object类型
        Cell<Integer> c=new Cell<>();
        c.set(37);
        int val=c.get();
        System.out.println(val+"");
    }
}

java5中的通配符(wildcard)

/*可以传入Shape类型或者它的子类Square*/
public static double totalArea(Collection<? extends Shape> arr){
    double total=0;
    for (Shape s : arr) {
        if (s!=null) {
            total+=s.area();
        }
        return total;
    }
}

折半查找

public static <AnyType extends Comparable<? super AnyType>>  int binarySearch(AnyType[] a,AnyType x){
    int low=0,high=a.length-1;
    while(low<=high){
        int mid=(low+high)/2;
        if(a[mid].compareTo(x)<0){
            low=mid+1;
        }else if(a[mid].compareTo(x)>0){
            high=mid-1;
        }else{
            return mid;
        }
    }
    return -1;
}

ADT(abstract data type)

是带有一组操作的一些对象的集合.抽象数据类型是数学的抽象(表,集合,图);

Iterator接口

public static<AnyType> void print(Collection<AnyType> coll){
    Iterator<AnyType> itr=coll.iterator();
    while(itr.hasNext()){
        AnyType item=itr.next();
        System.out.println(item);
    }
}

List接口(ArrayList,LinkedList)

ArrayList LinkedList
实现 可增长的数组 双链表
优点 get&set耗费常数级的时间 在现有表进行删除和插入都是常数级的耗时
缺点 新项的插入和现有项的删除代价昂贵,除非是在末端 由于不容易做索引,因此对get的调用时昂贵的O(N)

tips:

看了这么久,不请我喝杯茶吗?

2019-02-14