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]);
        }
    }

     

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

原文地址:https://www.cnblogs.com/wjgbok/p/10819591.html