算法 第4版笔记第一天
第一章基础 1.1基础编程模型 描述和实现算法所使用的语言特性,软件库,和操作系统特性总称为基础编程模型。 1.1.1 java程序基本结构 原始数据类型,语句,数组,静态方法,字符串,标准输入输出,数据抽象 Java程序的运行:先javac编译:javac BinarySearch.java 在java命令运行:java BinarySearch 1.1.2原始数据类型与表达式 数据类型:int double Boolean char 1.1.3语句 声明语句赋值语句,条件语句,循环语句,调用和返回语句 1.1.5数组 顺序存储相同类型的多个数据 注意起别名问题 Int[ ] a=new int[N]; a[i]=1234; int[ ] b=a; b[i]=5678;//a[i]的值也会变为5678 如果要复制数组的话应该用循环 Int[ ] b=new int[N]; For(int i=0;i<N;i++) B[i]=a[i]; 1.1.6静态方法 类似c语言一个函数 方法性质: (1) 值传递:方法处理的是参数的值,而不是参数本身。值传递是局部变量接收到调用方传过来的值然后操作这个值,比如交换两个值,交换的范围是在这个方法里,方法结束参数并没有交换。但是在Java里的数组变量,值传递意味着数组参数会是原数组的别名,可以引用调用者的数组并改变其内容。 (2) 方法名可被重载:什么是重载,名字相同,参数列表不同。 (3) 方法只能返回一个值,但可以包含多个返回语句:只返回被执行的第一条返回语句。 (4) 方法可以产生副作用:没有返回值的,void类型的静态方法会产生副作用(接受输入,产生输出,修改数组或改变系统状态)。
递归:方法调用自己。 (1) 递归总有一个最简单的情况 (2) 总是去尝试解决一个规模更小的子问题 (3) 递归调用的父问题和尝试解决问题的子问题之间没有交集。 Java开发的基本模式:编写一个静态方法库(一组静态方法)(包含一个main()方法)来完成一个任务。输入java和类名以及一系列字符串就能调用类中的main()方法,main()的最后一条一句执行完毕后程序终止。 外部库: (1) 系统标准库java.lang.*:包括math库,double库,,, (2) 导入的系统库:例如java.utils.Arrays… 调用另一个库的方法:存放在相同或指定目录中;类定义前用import语句导入。 1.1.7 API(应用程序编程接口)目的:调用和实现分离 模块化编程的一个重要组成部分就是记录库方法的用法并供其他人参考的文档。 API:使用的每个库方法名称,签名,简短的描述。 用例:指代调用另一个库中的方法的程序。 1.1.8 字符串String类型 字符串用途:将用户从键盘输入的内容转换成相应数据类型·的值以及将各种数据类型的值转化成能够在屏幕上显示的内容。还有是程序能接收到从命令行传来的信息(当输入命令java和一个库名以及一系列字符串之后,java系统会调用库的main()方法并将那一系列的字符串变成一个数组作为参数传递给它)。 1.1.9输入输出
|