Java第八课

数组
两点:1、相同的数据类型
2、定长:给定的数组,长度就固定。初始化之后使用
数组:(1)使用脚标去修改数据
( 2 ) 查 询 : 如 果 只 关 心 数 组 中 的 元 素 是 什 么 ,
Arrays.toString()
如果不只是查询,可能类似于排序。
for 循环
脚标:从 0 开始
冒泡排序
思想:两两比较,大数沉底
第一轮:会有最大数沉底 比较结束后,有1个数不参与下
一轮的比较
第二轮:第二大的数沉底 比较结束后,有两个最大会,最大的
两个数下一轮不参与比较
...
不管哪一个轮次,两两比较,大数沉底 ,轮次就是循环的量,轮
次的索引值为 0,每个轮次进行比较,比较的取多次数是 n-1,减
去一个比较完的数
交换两个数的值
第一种
方法:利用中间变量

Int tmp; //把 a,b 两值交换
tmp=a//先把 a 放在第三个引入变量中保存
a=b//报 b 赋值给 a
b=tmp//最后把第三方引入变量的内容存储另外交换的变量中
第二种: 不用第三方变量,是否完成两值交换
Python
a,b=b,a
代鉴
a=a+b
b=a-b
a=a-b
第三种:
Int[] c={a,b}
a=c[1]
b=c[0]
try.....catch 处理的不一定就是错误, 可能是编程中的一个思路
误区或者毛病,使用 try....catch 可以防止报错.
二分查找需要超始的索引,和终止的索引.二分查找特点需要查找
的值>中间值,在后面找,起始的索引变化,同样,如果需要查找的值
<中间值,在前面找,终止的索引变化,
测试:

成功条件: 前面第一个元素,后面最后一个元素,中间任意一个元

失败条件: 比前面第一个元素小的元系,比最后一个元素大的元
素,中间任意一个不存在的元素.
快速排序
方法: 概括分治思维
10 个排序,10 个数字分段,每段之间的排序
一轮排序得出大值,小值
6 12 3 46 56 25
基数 6
第一轮: 前面游标 12 到 3 3 要到 6 的左边 3 放在 0 的位置上
后面游标 25
只要小的,就把 0 位置和这个元素换,
3 12 6 46 56 25
结束后,
左游标 停在 12 的位置上,,最后基数位置和 12 的位置换掉
3 6 12 46 56 25
把这个数以 6 分成两部分,左边快速,右边快速,不清楚什么时候快
排结束,每次快排都分成两部分
For(){
While(左半部分)

While(右半部分) {
}
}
最好函数
Public void static Quanpai(arr,left,right){
左半部分 Quanpai(arr,mid_left,mid_right)
右半部分 Quanpai(arr,mid_left,mid_right)
}
在数组分治中,直接循环很麻烦,最优化就是函数,函数中可以继
续调用这个函数,改变参数,这种函数可以在内部调用自己方法,
称为递归调用.
注意:
int[] arr={1,2,3,4,5};
int[] arr1=arr;
arr[0]=100;
System.out.println(Arrays.toString(arr));
System.out.println(Arrays.toString(arr1));
只改变一个数组中的元素,另一个数组已经改变.
数组之间的赋值相当于把地址赋值给数组,不是数据,也就是两个
数组变量指向了同一个地址,这个地址中的数据都是一样的,这种
变量叫引用变量.

代码详见:Fang-fang/方芳 的java (gitee.com)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值