java第六周学习总结

第一天:

求数组中元素的平均值

public static double avg(int[] array) {

       int sum = 0;

       for (int i = 0;i < array.length;i++) { 

           sum = sum+array[i];

       }

       return sum*1.0 / array.length;

   }  return(double)sum / (double)arr.length

 

    public static void main(String[] args) {

        int[] array = {1,2,3,4,5,6};

        System.out.println(avg(array));

}

数组顺序查找:

public static int search(int[] array,int key) {

        for (int i = 0; i < array.length; i++) { 

            if (array[i] == key) {

                return i;

            }

        }

        return -1;  //返回值 因为数组下标没有负数

    }

    public static void main(String[] args) {

        int[] array = {1,2,3,4,5};

        int index = search(array,4); 

        if (index == -1) {

            System.out.println("没有你要找的关键字!");

        }else {

            System.out.println("找到了你要的关键字,下标是:"+index);

        }

    }

第二天:

二分查找:

public static int binarySearch(int[] array, int key) {

        int left = 0;

        int rigth = array.length - 1;

        while (left <= rigth) {

            int mid = (left + rigth) / 2;  

            if (array[mid] < key) {    

                left = mid + 1;        //从右侧区间继续找   

            }else if (array[mid] == key) {

                return mid;           //找到了

            }else {

                rigth = mid - 1;      //从左侧区间继续找

        }

    }

    return-1;     //返回值 因为数组下标没有负数

}

 

    public static void main(String[] args) {

        int[] array = {12,24,3,8,6};

        int index = binarySearch(array,8);  //输入数组中你想要找的数

        if (index == -1) {

            System.out.println("没有你要找的关键字!");

        }else {

            System.out.println("找到了你要的关键字,下标是:"+index);

        }

    }

第三天:

冒泡排序:

public static void main(String[] args) {

        int[] array = {12, 24, 3, 8, 6};

        for (int i = 0; i < array.length - 1; i++) {   

            boolean flg = false;    //布尔型(boolean)它的取值只能是常量true或者false

            for (int j = 0; j < array.length - 1 - i; j++) {   

                if (array[j] > array[j + 1]) {     

                    int temp = array[j];

                    array[j] = array[j + 1]; 

                    array[j + 1] = temp;

                    flg = true; //打个比方 2 1 3 4 5 最开始flg=false 2大于1进行了一次交换之后

                }             //flg=true  之后2不大于3  不再进行交换

            }

            if (flg == false){

                break;

            }

        }

       System.out.println("从小到大排序后的结果是: "+Arrays.toString(array));

第四天:

数组的逆序:

public static void reverse(int[] array) {

        int left = 0;

        int right = array.length-1;

        int tmp = 0;

        while (left < right) {

            tmp = array[left];

            array[left] = array[right];

            array[right] = tmp;

            left++;

            right--;

        }

    }

 

    public static void main(String[] args) {

        int[] array1 = {12,24,3,8,6};

        System.out.println("逆置之前的数组:"+ Arrays.toString(array1));

        reverse(array1);

        System.out.println("逆置之后的数组:"+ Arrays.toString(array1));

 

    }

第五天:

打印随机数:

package com.yau;

 

import java.util.ArrayList;

import java.util.Random;

 

public class Practice01 {

       public static void main(String[] args) {

              Random r = new  Random();//创建一个随机数对象

              int [] arr = new int [10];//创建一个长度为10的数组

              ArrayList list = new ArrayList();//创建一个List集合

              for(int i = 0; i < arr.length; i++) {

                     arr[i] = r.nextInt(100);//把获取到的1-100以内的随机数放到数组里    面

                     if(arr[i] > 10) {

                            list.add(arr[i]);//把大于十的数添加到集合里

                     }     

              }

              System.out.println(list);//读取集合中的数

       }

}

posted @ 2022-08-06 10:05  Espen  阅读(82)  评论(0)    收藏  举报