java微服务学习第六天 数组

第6单元 数组

6.1 数组的概念

一组相同数据的集合

6.2 数组的声明

\1. int[] 数组名 = new int[数组长度]; (最常用的方法)

\2. int 数组名[] = new int[数组长度];(最不推荐使用)

\3. int[] 数组名 = new int[]{初始值1,初始值2...};

\4. int[] 数组名 = {初始值1,初始值2...};

注意:

\1. 数组声明之后,不可以再改变数组长度

\2. 数组中只能存储同类型的值

6.3数组内存存储

6.4 数组排序

arr.length-1

54321
432154次arr.length-1-0 i=0
321453次 arr.length--1-1 i=1
213452次 arr.length-1-2 i=2
123451次 arr.length-1-3 i=3

冒泡排序

        int[] arr = {2, 6, 12, 45, 3, 63, 48, 30};
       for (int i = 0; i < arr.length - 1; i++) {//比较
           for (int j = 0; j < arr.length - i-1; j++) {//交换
               int temp;
               if (arr[j] > arr[j + 1]) {
                   temp = arr[j];
                   arr[j] = arr[j + 1];
                   arr[j + 1] = temp;
                }
                for (int k = 0; k <arr.length ; k++) {
                    System.out.print(arr[k]+"  ");
                }
                System.out.println();
         }
           System.out.println("-----------------------------");
       }        for (int i = 0; i <arr.length ; i++) {
            System.out.print(arr[i]+" ");
        }

6.5折半查找:

 int[] arr ={12,15,36,78,88,99,100,123,456,888};
       int  key=13;
       int min = 0;
       int max = arr.length-1;
       int mid = (min+max)/2;
        boolean a=true;
        while(a){
​
            if (key<=arr[mid]){
                max = mid-1;
            }
​
            if (key>=arr[mid]){
                min = mid+1;
            }
            mid = (min+max)/2;
            System.out.println(max);
            System.out.println(min);
            System.out.println(mid);
            System.out.println("///");
            if (key==arr[mid]){
                System.out.println("该数存在,下标为:"+mid);
                break;
            }
            if (min>=max){
                System.out.println("该数不存在");
                break;
            }
    }

作业

package com.xszx.test;
import java.util.*;
public class HomeWork026 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
//     1.   System.out.println("请输入月份(1-12)");
//        int month = sc.nextInt();
//        int[] day={30,29,31};
//        if(month==1|month==3|month==5|month==7|month==8|month==10|month==12){
//            System.out.println(day[2]);
//        }
//        if(month==4|month==6|month==9|month==11){
//            System.out.println(day[0]);
//        }
//        if(month==2){
//            System.out.println(day[1]);
    }
//        int[] arr={64,54,63,12,89,45,21,10,36,100};
//        for (int i = 0; i <arr.length ; i++) {
//            for (int j = 0; j < arr.length - i; j++) {
//                int temp;
//                if (arr[i] > arr[i + 1]) {
//                    temp = arr[i];
//                    arr[i] = arr[i + 1];
//                    arr[i + 1] = arr[i];
//                }
//            }
//
//        }
//        System.out.println("最大值为:" +arr[9]+" 最小值为 "+arr[0]);
//通过屏幕输入五个学生的成绩,排序后输出。
//        System.out.println("请输入五个数");
//        int a = sc.nextInt();
//        int b = sc.nextInt();
//        int c = sc.nextInt();
//        int d = sc.nextInt();
//        int e = sc.nextInt();
//        int[] arr={a,b,c,d,e};
//        for (int i = 0; i <arr.length-1 ; i++) {
//            for (int j = 0; j <arr.length-i-1 ; j++) {
//                int temp;
//                if(arr[j]>arr[j+1]){
//                    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]);
//        }
//
        //查找数组中最大最小值
//        int[] arr={20,50,30,3,16};
//        for (int i = 1; i <arr.length; i++) {
//            int temp;
//            if(arr[i-1]>arr[i]){
//                temp=arr[i];
//                arr[i]=arr[i-1];
//                arr[i-1]=temp;
//            }
//        }
//        System.out.println(arr[arr.length-1]);
//        for (int i = 1; i <arr.length; i++) {
//            int temp;
//            if(arr[i-1]<arr[i]){
//                temp=arr[i];
//                arr[i]=arr[i-1];
//                arr[i-1]=temp;
//            }
//        }
//        System.out.println(arr[arr.length-1]);
//4.在数组中查找元素(先打印输出所有元素,输入一个数,
// 如果找到了则打印输出其位置,
// 没有找到则提示没有找到职责提示没有找到)
//        int[] arr1={12,15,56,58,65,75,100};
//        for (int i = 0; i <arr1.length ; i++) {
//            System.out.print(arr1[i]+" ,");
//        }
//        System.out.println();
//        System.out.print("请输入一个数:");
//        int a = sc.nextInt();
//        int min = 0;
//        int max = arr1.length-1;
//        int mid = (min+max)/2;
//        boolean b=true;
//        while(b){
//
//            if (a<=arr1[mid]){
//                max = mid-1;
//            }
//
//            if (a>=arr1[mid]){
//                min = mid+1;
//            }
//            mid = (min+max)/2;
//            if (a==arr1[mid]){
//                System.out.println("该数存在,下标为:"+mid);
//                break;
//            }
//            if (min>=max){
//                System.out.println("该数不存在");
//                break;
//            }
//        }
//
​
​
    }
    }
​
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值