数组的复制、数组的排序、冒泡排序详解、方法、计算算法的效率的一个方法
1.数组:
1)数组的复制:
1.1)System.arraycopy(a,1,a1,0,4);
1.2)int[] a1 = Arrays.copyOf(a,6);
a = Arrays.copyOf(a,a.length+1);
2)数组的排序:
2.1)Arrays.sort(arr); //升序
2.2)冒泡排序:
2.2.1)五个数冒四轮
2.2.2)每一轮都是从第1个元素开始冒
每一次都是和它的下一个元素比
2.2.3)冒出来的就不带它玩了
冒泡排序运行过程分析:
i=0
j=0 45和23比,换,23,45,1,8
j=1 45和1比,换,23,1,45,8
j=2 45和8比,换,23,1,8,45-------45
i=1
j=0 23和1比,换,1,23,8,45
j=1 23和8比,换,1,8,23,45-------23
i=2
j=0 1和8比,不换-----------------8
第一轮:
45和23比,换,23,45,1,8
45和1比,换,23,1,45,8
45和8比,换,23,1,8,45--------------45冒出来了
第二轮:
23和1比,换,1,23,8,45
23和8比,换,1,8,23,45--------------23冒出来了
第三轮:
1和8比,不换------------------------8冒出来了
arr.length-1-i
i=0 比3次
i=1 比2次
i=2 比1次
冒泡排序代码详解:
int[] arr = {45,23,1,8}; //升序排列(1,8,23,45)
for(int i=0;i<arr.length-1;i++){ //控制轮
for(int j=0;j<arr.length-1-i;j++){ //控制次
if(arr[j]>arr[j+1]){
int t=arr[j];
arr[j]=arr[j+1];
arr[j+1]=t;
}
}
}
2.方法:
1)封装一段特定的业务逻辑功能
2)方法尽可能独立,只干一件事
3)方法可以被反复多次的调用
4)减少代码的重复,有利于代码的维护,有利于团队的协作
3.方法的定义:
修饰词 返回值类型 方法名(参数列表){
方法体
}
4.方法的调用:
1)无返回值: 方法名(有参传参);
2)有返回值: 数据类型 变量 = 方法名(有参传参);
方法可以有参也可以无参,有参可以使方法更灵活
double c = Math.random(); //0.0到0.9999999999999...
double c = Math.random(1,1000);
double c = Math.random(0,99);
double c = Math.random(20,45);
MethodDemo
System.out. println("hello");
System. arraycopy(a,1,a1,0,4);
Arrays. sort(arr);
int[] a1 = Arrays. copyOf(a,6);---------------有参
int a = scan. nextInt();
double b = scan. nextDouble();
double c = Math. random();------------------无参
方法可能有返回值也可以没有返回值:
1)若无返回值,则返回值类型写成void
2)若有返回值,则返回值类型写成具体的数据类型即可
何时有返回值,何时没有返回值:
方法执行完后:
1)还需要用到方法中的某个数据------有返回值
2)不需要用到方法中的某个数据------无返回值
System.out.println("hello");
System.arraycopy(a,1,a1,0,4);
Arrays.sort(arr);-----------------------无返回值
int a = scan.nextInt();
double b = scan.nextDouble();
double c = Math.random();
int[] a1 = Arrays.copyOf(a,6);----------有返回值
注意要点:
1)有参必须传参,并且参数类型必须匹配
2)有返回值必须return,并且return后的值必须与返回值类型匹配
3)调用方的变量名与方法中的变量名-----没有任何关系
4)方法可以嵌套调用
计算算法的效率的一个方法:
long a = System.currentTimeMillis();
要求效率的方法写在中间
long b = System.currentTimeMillis();
System.out.println(b-a);
5.return:
1)return 值; //1.1)结束方法的执行 1.2)返回结果给调用方
-------------------用在有返回值的方法中
2)return; //2.1)结束方法的执行
-------------------用在无返回值的方法中