数据结构与算法分析-Java(一)

第一章 引论

选择问题:N个数种确定其中第K大的数据;(1)N个数据读入到数组种,进行冒泡等排序方法,并返回位置为k的元素;(2)将前K个元素读取数组种并进行降序排序,然后将剩余元素与之对比,如果大于第k个元素,则插入放置到正确位置,挤出旧第k元素,剩余元素结束返回k元素;(3)字谜问题:输入是一些字母构成的一个二位数组及一组单词组成,目标找出字谜种的单词,单词存放位置可能是水平、垂直或沿对角线上任何方向放置的

当前遇见的问题可能是写出一个工作程序不难,但是如果该程序运行在巨大的数据集上,那么运行时间就是最大的问题;

数学知识复习:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

当一个函数用它自身进行定义时就称为递归;(1)基准情形,必须有某些基准的情形,它们不用递归就能求解;(2)不断推进,要递归求解的情形,递归调用必须总能朝着一个基准情形推进。
四种基本法则:(1)基准情形;(2)不断推进;(3)设计法则,假设所有的递归调用都能运行(4)合成效益法则,求解一个问题的同一实例时,切勿在不同的递归调用中做重复性的工作。

实现泛型构建
面向对象的一个重要目标就是对代码重用的支持,支持该目标的机制就是泛型机制:如果除去对象的基本类型,实现方法是相同的,就可以使用泛型实现。Java中通过Object超类实现泛型类,因此只能使用引用类型,只有引用类型才能够与Object相容;

包装类,每个包装对象是不可变的(状态绝对不能改变),它存储一种该对象被构建时所设置的原值,并提供方法重新得到该值。

数组类型的兼容性
假设Emplyee[]是和Person[]兼容的,Person[] arr = new Employee[5] , arr[0] = new Strudent{…};两句都进行编译,arr[0]实际上是Employee引用,但是Student IS-NOT-A Employee,这将产生类型转换异常。

泛型类和接口
泛型类申明内部,可以申明泛型类型的域和使用泛型类型作为参数或返回类型的方法;
在这里插入图片描述
泛型接口
在这里插入图片描述
泛型方法
在这里插入图片描述

类型限界
类型限界在尖括号内指定,它指定参数类型必须具有的性质

类型擦除
泛型类可以通过编译器的类型擦除过程转变成非泛型类,此时,编译器生成一种与泛型类同名的原始类,但是类型参数被删除了;类型变量由类型限界来代替,当具有擦除返回类型的泛型方法被调用的时候,一些特性被自动的插入。

函数对象
一种将函数作为参数传递的方法注意到对象既包含数据也包含方法,于是定义一个没有数据而只有一个方法的类,并传递该类的实例;实际上,一个函数将其放置到一个对象内部而被传递,这样的对象称为函数对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值