大二电子信息工程小白一枚,想自学后端毕业去找工作,为了提高学习效率,想记录总结一下每天学习的内容,若有志同道合的小伙伴可以一起打卡,有大佬的话也希望能提一些建议,感谢!
4.22 今天学习的时间比较多,下午和晚上都没课,不过晚上去打球了。今天学了static关键字,明白了静态成员和非静态成员的区别,一般工具类都用静态成员,静态成员虽然方便但是会占用更多内存,所以不能全写成静态的,然后学了递归,翻转数组,冒泡排序,二分查找,我都自己敲了一遍,以下是笔记
利用递归输出1-3
package com.atguigu.module9;
public class Demo01Recursion {
public static void main(String[] args) {
int res = method(3);
System.out.println(res);
}
public static int method(int a){
if (a==1){
return 1;
}
return a * method(a-1);
}
}
利用递归实现斐波那契数列
package com.atguigu.module9;
public class Demo02Recursion {
public static void main(String[] args) {
int res = method(12);
System.out.println(res);
}
public static int method(int a){
if(a==1||a==2) {
return 1;
}
return method(a-2) + method(a-1);
}
}
翻转数组
package com.atguigu.module9;
import java.lang.reflect.Array;
public class Demo03Reserve {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6,7};
for (int min = 0,max = arr.length-1;min<max;min++,max--) {
int temp = arr[min];
arr[min] = arr[max];
arr[max] = temp;
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]+" ");
}
}
}
冒泡排序
package com.atguigu.module9;
public class Demo04BubbleSort {
public static void main(String[] args) {
int[] arr = {5,3,2,1,4};
for (int j = arr.length-1; j > 0 ; j--) {
for (int i = 0; i < arr.length-1; i++) {
if(arr[i] > arr[i+1]){
int temp = arr[i];
arr[i] = arr[i+1];
arr[i+1] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
二分查找
package com.atguigu.module9;
public class Demo05Bisect {
public static void main(String[] args) {
int[] arr = {1,2,3,4,5,6,7};
int res = binary(arr,6);
System.out.println(res);
}
public static int binary(int[] arr,int data){
int min = 0;
int max = arr.length-1;
int mid = 0;
while(min<max){
mid = (min+max)/2;
if(data>arr[mid]){
min = mid;
mid = (min+max)/2;
}else if(data<arr[mid]){
max = mid;
mid = (min+max)/2;
}else{
return mid;
}
}
return mid;
}
}