• Java基础课程---


    ---恢复内容开始---

    1 查找10000 (某个数以内的所有质数)

    public static void main(String[] args) {
            int count = 0;
            for(int i = 2;i<100000;i++){
                boolean flag = true;
                for(int j = 2;j<=Math.sqrt(i);j++){
                    if(i%j==0){
                        flag = false;
                        break;
                    }
                }
                if(true==flag){
                    count++;
                }
                //flag = true;
            }
            System.out.println(count);
        }

    2 使用二维数组编写并打印杨辉三角

    public static void main(String[] args) {
            // 1声明数组
            int [][] yanghui = new int [10][];
            //2 给数组赋值
            for(int i = 0;i<yanghui.length;i++){
                yanghui[i] = new int [i+1];
                // 2.1 给首末元素赋值
                yanghui[i][0] = yanghui[i][i] = 1;
                
                // 2.2 给每行的非首末元素赋值
                for(int j = 1;j<yanghui[i].length-1;j++){
                    yanghui[i][j] = yanghui[i-1][j-1]+yanghui[i-1][j];
                }
            }
            //3 遍历二维数组
            for(int i = 0;i<yanghui.length;i++){
                
                for(int j = 0;j<i;j++){
                    System.out.print(yanghui[i][j]+" ");
                }
                System.out.println();
            }
        }

    3。数组的复制,反转,查找

          1  数组的复制使用 for 循环复制即可

          2 数组的反转操作   

    public static void main(String[] args) {
            //数组的反转
            String [] str1 = new String []{"aa","bb","cc","dd","ee","ff"};
            for(int i = 0;i<str1.length/2;i++){
                String temp = str1[i];
                str1[i] = str1[str1.length-i-1];
                str1[str1.length-i-1] = temp;
            }
            // 1遍历反转后的数组
            for(int i = 0;i<str1.length;i++){
                System.out.println(str1[i]);
            }
        }

      3 数组的查找(线性查找)

        从已知的数组中查找题目给定的数组,如果找到返回下标识,没有则打印没有信息

        思路 ,遍历已知的数组,使用 equals()方法,利用标示,如果找到相同的数字,

        则不再往下进行查找 使用 break终止循环。

      4 二分法查找,前提是查找的数组必须是有序的

    public static void main(String[] args) {
            // 二分查找。前提是所要查找的数组必须有序
            int [] arr2 = new int []{-98,-34,2,34,54,66,79,105,210,333};
            
            int dest1 = -34; // 目标数字
            int head = 0;// 初始的首索引
            int end = arr2.length-1;// 初始的末索引
            
            boolean isFlag = true;
            while(head<=end){
                int middle = (head+end)/2;
                if(dest1 == arr2[middle]){
                    System.out.println("目标指定元素的位置为。。"+middle);
                    isFlag = false;
                    break;
                }else if(arr2[middle]>dest1){
                    end = middle-1;
                }else{// arr2[middle]<dest1
                    head = middle+1;
                }
            }
            if(isFlag){
                System.out.println("没有找到....");
            }
        }

    5 算法的5大特征

          1  输入,

          2  输出

        3  有穷行(有限性)

        4  确定性(明确性)

      5  可行性

    6  冒泡排序的实现

       

    public static void main(String[] args) {
            // 冒泡排序
            int arr []= new int []{43,34,56,75,24,98,134};
            
            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 temp = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = temp;
                    }
                }
            }
            
            for(int k = 0;k<arr.length;k++){
                System.out.println(arr[k]);
            }
        }

         

    ---恢复内容结束---

    ---恢复内容开始---

    1 查找10000 (某个数以内的所有质数)

    public static void main(String[] args) {
            int count = 0;
            for(int i = 2;i<100000;i++){
                boolean flag = true;
                for(int j = 2;j<=Math.sqrt(i);j++){
                    if(i%j==0){
                        flag = false;
                        break;
                    }
                }
                if(true==flag){
                    count++;
                }
                //flag = true;
            }
            System.out.println(count);
        }

    2 使用二维数组编写并打印杨辉三角

    public static void main(String[] args) {
            // 1声明数组
            int [][] yanghui = new int [10][];
            //2 给数组赋值
            for(int i = 0;i<yanghui.length;i++){
                yanghui[i] = new int [i+1];
                // 2.1 给首末元素赋值
                yanghui[i][0] = yanghui[i][i] = 1;
                
                // 2.2 给每行的非首末元素赋值
                for(int j = 1;j<yanghui[i].length-1;j++){
                    yanghui[i][j] = yanghui[i-1][j-1]+yanghui[i-1][j];
                }
            }
            //3 遍历二维数组
            for(int i = 0;i<yanghui.length;i++){
                
                for(int j = 0;j<i;j++){
                    System.out.print(yanghui[i][j]+" ");
                }
                System.out.println();
            }
        }

    3。数组的复制,反转,查找

          1  数组的复制使用 for 循环复制即可

          2 数组的反转操作   

    public static void main(String[] args) {
            //数组的反转
            String [] str1 = new String []{"aa","bb","cc","dd","ee","ff"};
            for(int i = 0;i<str1.length/2;i++){
                String temp = str1[i];
                str1[i] = str1[str1.length-i-1];
                str1[str1.length-i-1] = temp;
            }
            // 1遍历反转后的数组
            for(int i = 0;i<str1.length;i++){
                System.out.println(str1[i]);
            }
        }

      3 数组的查找(线性查找)

        从已知的数组中查找题目给定的数组,如果找到返回下标识,没有则打印没有信息

        思路 ,遍历已知的数组,使用 equals()方法,利用标示,如果找到相同的数字,

        则不再往下进行查找 使用 break终止循环。

      4 二分法查找,前提是查找的数组必须是有序的

    public static void main(String[] args) {
            // 二分查找。前提是所要查找的数组必须有序
            int [] arr2 = new int []{-98,-34,2,34,54,66,79,105,210,333};
            
            int dest1 = -34; // 目标数字
            int head = 0;// 初始的首索引
            int end = arr2.length-1;// 初始的末索引
            
            boolean isFlag = true;
            while(head<=end){
                int middle = (head+end)/2;
                if(dest1 == arr2[middle]){
                    System.out.println("目标指定元素的位置为。。"+middle);
                    isFlag = false;
                    break;
                }else if(arr2[middle]>dest1){
                    end = middle-1;
                }else{// arr2[middle]<dest1
                    head = middle+1;
                }
            }
            if(isFlag){
                System.out.println("没有找到....");
            }
        }

    5 算法的5大特征

          1  输入,

          2  输出

        3  有穷行(有限性)

        4  确定性(明确性)

      5  可行性

    6  冒泡排序的实现

       

    public static void main(String[] args) {
            // 冒泡排序
            int arr []= new int []{43,34,56,75,24,98,134};
            
            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 temp = arr[j];
                        arr[j] = arr[j+1];
                        arr[j+1] = temp;
                    }
                }
            }
            
            for(int k = 0;k<arr.length;k++){
                System.out.println(arr[k]);
            }
        }

         

    ---恢复内容结束---

  • 相关阅读:
    POJ 2029 (二维树状数组)题解
    HDU 4819 Mosaic (二维线段树&区间最值)题解
    HDU 1823 Luck and Love (二维线段树&区间最值)题解
    POJ1061 青蛙的约会(扩展欧几里得)题解
    POJ 2155 Matrix (二维树状数组)题解
    POJ 1751 Highways(最小生成树&Prim)题解
    HDU 6148 Valley Numer (数位DP)题解
    HDU3652 B-number(数位DP)题解
    HDU 4734 (数位DP)题解
    HDU 2089 不要62 (数位DP)题解
  • 原文地址:https://www.cnblogs.com/wjgbok/p/10819591.html
Copyright © 2020-2023  润新知