学习java第26天
1.日志
与日记相似,记录程序的运行情况
2.log4j的三大组件
*Logger:是log4j的核心组件,可以对日志信息进行分类筛选
日志种类由高到低 : fatal,error,warn,info,debug
*Appender组件 :决定将日志信息输出到什么地方
*Layout组件:决定日志输出格式
顺序查找
这个缺点比较明显,依次进行查找的话(中途找到,提前结束)效率较低
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sr = new Scanner(System.in);
int fs = sr.nextInt();
int n = sr.nextInt();
int attr[] = new int[n];
for (int i=0;i<n;i++){
attr[i]=sr.nextInt();
}
int index = searchmy(attr,fs,n);
if (index==-1){
System.out.println("未找到");
}else{
System.out.println(fs+" 找到的是:"+index);
}
}
static int searchmy(int att[],int m ,int n){
int index=-1;
for (int i=0;i<n;i++){
if(att[i]==m){
index = i;
break;
}else {
index = -1;
}
}
return index;
}
}
二分查找
二分法查找的效率相对高,但是要将表按关键字进行排序,而排序的话会费时间,所以二分法比较适用于顺序存储结构
import java.util.Scanner;
public class BinarySearch {
public static void main(String[] args){
Scanner sr = new Scanner(System.in);
int f = sr.nextInt(); //这里输入要查找的数字
int n = sr.nextInt(); // 这里输入多少个数字
int attr[] = new int[n];
for (int i=0;i<n;i++){
attr[i]=sr.nextInt();
}
int index = searchmy(attr,f,n);
if (index==-1){
System.out.println("未找到");
}else{
System.out.println(f+" 找到的是:"+index);
}
}
static int searchmy(int att[],int m ,int n){ //指定首部和尾部的值,再一点点的缩小
int low = 0;
int high=att.length;
int mid = 0;
while(low<high){
mid = (low+high)/2;
if(att[mid]==m){
return mid;
}else if(m<att[mid]){
high = mid - 1;
}else{ //m>att[mid]
low = mid+1;
}
}
return -1;
}
}
明天学习内容:
用I/O进行数据处理