《数据结构与算法分析java语言描述》学习笔记一

原创 2016年08月28日 19:02:20

                                                                             第一章 引论

一、概述本书讨论内容

       一般情况下,写出一个可以正常工作的程序远远不够;在大量数据输入的情况下,程序能否在合理的时间内运行停止并输出正确的答案是一个重要的问题;所以本书首先会讲述对于大量的输入如何估计程序的运行时间和确定程序瓶颈的方法,并讲述如何彻底改进程序运行速度。

二、数学知识复习

1.指数

2.对数

3级数

4.模运算


5.证明方法:

A)归纳法证明

           B)反证法证明 

             例:证明存在无穷多个素数。


三、递归简论

1.递归:当一个函数用它自己来定义时就称为是递归(rescusive)的。

      注:java提供的只是遵循递归思想的一种尝试;不是所有的数学递归函数都能被有效地(或正确地)由java的递归模拟来实现。

  例:打印输出整数

package com.caitang.algorithm.recursivepartition;
/**
 * 递归打印字符
 * @author Administrator
 *
 */
public class PrintString 
{
	public static void main(String [] args)
	{
		printStrs(123456789);
	}
	/**
	 * 逐个字符打印所给整数
	 * @param n 这里系统标准输出流每次都只打印一个字符
	 */
	private static void printStrs(int n)
	{
		if(n>=10)
			printStrs(n/10);
		System.out.println(n%10);
	}

}

运行结果:


2.递归法则:

    A)基准情形。递归实现中必须含有不用递归就能求解的基准情形。

    B)不断推进。对于基准情形之外的情况——必须要使用递归的情况,递归调用总能朝着一个基准情形推进。

    C)设计法则。假设所有的递归调用都能运行,无需跟踪其他调用细节。

    D)合成效益法则。在求解一个问题的同意实例时,切勿在不同的递归调用中做重复性的工作。

3.递归的数学根据是归纳

 四、java泛型

1.Java实现泛型的方式:

  A)使用Object表示泛型(使用8种基本数据类型时需要使用基本类型的包装类,已经支持自动拆装箱)

  B)使用接口类型表示泛型

2数组类型和集合类型的兼容性(协变性)与泛型和泛型集合类型的非协变性

3.java新特性对泛型的支持

  A)菱形运算符

  B)带有限制的通配符

java5使用通配符来弥补泛型集合不具有协变性的不足。

  C)类型界限

  D)类型擦除

泛型在很大程度上是Java语言中的成分而不是虚拟机中的结构;泛型类可以由编译器通过所谓的类型擦除过程转变为非泛型类,这样,编译器就生成一种与泛型类同名的原始类。

E)对泛型的限制

i)基本类型不能用作泛型的类型参数。

ii)instanceof 检测和类型转换工作只对原始类进行。

iii)在一个泛型类中,static方法和static域均不可引用类的类型变量。

iiii)不能创建一个泛型类型的实例,也不能创建一个泛型数组。

iiiii)参数化类型的数组的实例化是非法的。

五、函数对象

一个函数通过将其放在一个对象内部而被传递,这样的对象通常叫做函数对象。


 


版权声明:本文为博主原创文章,转载请注明出处。

相关文章推荐

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

《数据结构与算法分析java语言描述》知识点总结(3-4章)

3. 表、栈、队列 3.1 抽象数据类型(ADT) 表的一些简单操作可以通过使用数组来完成,如果发生对表的一些插入和删除操作,特别是对表的前端进行,那么数组就不是一种很好的选择了,就需要使...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

ofstream和ifstream详细用法

ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间; 在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O...
  • yzl_rex
  • yzl_rex
  • 2011年10月20日 21:17
  • 262

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

数据结构(java语言描述)-- 栈的两种简单实现

package com.cly.sjjg; import java.util.Iterator; import java.util.LinkedList; import java.util.List...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:《数据结构与算法分析java语言描述》学习笔记一
举报原因:
原因补充:

(最多只允许输入30个字)