zoukankan      html  css  js  c++  java
  • 学习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进行数据处理

  • 相关阅读:
    Nginx常用日志分割方法
    nginx的 CPU参数worker_processes和worker_cpu_affinity使用说明
    js中的“==”和“===”的区别
    学习JS
    svg
    用户界面设计
    bootstrap和easyui
    axure—日期函数
    axure--轮播图
    字符串属性和函数的使用
  • 原文地址:https://www.cnblogs.com/SirNie/p/13410745.html
Copyright © 2011-2022 走看看