########################### 循环流程控制
for while do...while
1、使用最多的是for 主要用于解决与次数有关的循环 2、for 可以替代其它循环 3、while 循环使用的也比较常见
循环的选择:
与次数有关的使用for,循环条件在循环体开始位置使用while,循环条件在循环结束位置使用do ... while;其它情况下使用死循环+break(如:循环体在中间位置/不知道在什么位置时候); 数组:
1、数组变量(引用变量) 2、数组(数组对象) 3、数组元素 草图解释:
数组赋值:
代码:1
代码2:
注:ary3 没有数组长度(空控制令异常),ary4有数组长度 是0;
数组迭代:
遍历处理数组的每个元素。 打飞机游戏
方法:(就是软件的功能) 1、方法是业务功能;
2、方法是利用数据计算实现业务功能;
方法案例:
1、功能:计算两个点之间的距离
2、功能实现:利用勾股定理计算两点的距离 方法调用返回return,除了void;
软件开发过程(计算机只能处理数据)
1、搞清楚业务需求:明确的软件功能文字描述 2、根据业务描述找打“数据”模型 3、根据业务描述找软件功能->设计方法 4、方法实现:根据数据设计算法实现软件功能 5、测试与调试
Fibonacc \"斐波那契\"数列
黄金分割 计算第n项
1、功能:计算斐波那契数列的n项
2、功能实现:n项是前两项的和,推论从第一项加到n项 功能分析:
代码:
项目案例:(课后) 字母猜测游戏 功能分析:
草图解释: 去除重复数字 generate:
字符匹配,位置正确数 result:
3个匹配,1个位置正确
5个匹配,5个位置争取
比较值及位置 check:
1、
————————————————————————
2、
——————————————————————————
3、
——————————————————————————
4、
——————————————-———————————— 5
、
代码:
方
法
(
框
架
)
:
主流程序:
加上一条:system.out.println(answer); 1次程序:(generate方法:)
注: .nextInt一般指数组的下标使用;
2次程序:(userInput方法:)
注:Scanner 默认不输入字符数组所以需要调用 .toCharArray();
3次程序(check方法:)
4次程序(show 方法:)
注: void 中return可以写可以不写,如果写了后面的程序不执行;??(测试)
day06 PM
############################# 基础算法
Arrays 集合的工具类在 java.uitl 包里 包含了很多实现好的算法方法
输出数组元素连接为字符串 Arrays.toString( ) 代码:
Arrays.toString( ) 是可以便捷的输出数组内容
与上面
代码1和2的简写
// API 好处就是简化代码!
判断两个数组元素是否相等 代码:
排序方法(Arrays.sort)
Arrays.sort 默认由小到大的排序(按照Unicode编码值排列) 代码:
二分查找( Arrays.binarySearch( , )) 从中间到小方向查找 案例:
面试题:
总结:1、在未排序的数组中使用二分查找,结果是不稳定的(不能再未排序的数组上使用二分查找)
2 、二分查找结果是元素的位置,如果返回负数表示没有找到
3、 在已排序的数组中使用二分查找,结果是稳定的
代码:
1、 在未排序的数组中使用二分查找,结果是不稳定的
2、在已排序的数组中查找,结果是确定的
数组复制(system.arraycopy) 代码:
for循环复制数组:
API复制:
复制数组 Arrays.copyof(续) 设置 java 编译器 级别为6.0/1.6以上
代码:
数组复制用途:
数组的扩容
1、数组长度是不可改变的
2、数组变量可以重新赋值引用不同的数组 3、利用更换数组可以实现数组的扩容
代码: 原始运算
Arrays.copyof 扩容追加运算(如网站的购物车)
字符串就是字符数组测试输出结果
排序算法:
1、插入排序
总结(定义): 把需要排序的元素分为两组,一组是已排序的,另外一组是未排序的,然后拿未排序的每一张在已排序当中找到位置把它插进去,达到排序目的;
草图解释:
把元素取出来送给K然后和J比较 ,
——————————————————————————
归纳:
代码:
冒泡排序算法: (规则简介)
原则:依次比较相邻元素,大数向后交换, 草图解释:
9依次向后交换 然后8依次向后交换 。。。。
i代表趟次 ,J代表下标序号
算法:
冒泡排序算法:
撕纸条练习:
代码:
因篇幅问题不能全部显示,请点此查看更多更全内容