B站韩顺平数组零散笔记

目录

一、数组

数组练习:

数组翻转:

 数组添加:

排序

1、冒泡排序的思路

2、冒泡排序的代码

杨辉三角

二、本章作业


前言:本笔记是零散笔记

一、数组

数组下标必须是在指定范围内使用,否则报ArrayIndexOutOfBoundsException(数组索引越界异常)

数组练习:

注意强制类型转换的写法,需要把char用括号括起来

public class Test {
    public static void main(String[] args) {
        char[] chars = new char[26];
        chars[0] = 'A';
        for (int i = 0; i < chars.length; i++) {
            System.out.println((char)(chars[0]+i));
        }
    }
}

数组翻转:

1.通过一个临时变量分别对数组中对称的元素进行互换,如此循环,完成翻转

public class Test {
    public static void main(String[] args) {
        int[] ints = {1,535,23,889,123,435,0,-1,9};
        int length = ints.length;;
        int temp;
        for (int i = 0; i < length/2; i++) {
            temp = ints[i];
            ints[i] = ints[length-i-1];
            ints[length-i-1] = temp;
        }
        for (int i = 0; i < length; i++) {
            System.out.println(ints[i]);
        }
    }
}

2.通过逆序赋值的方式翻转(需要新建一个空数组,增加了空间复杂度)

public class Test {
    public static void main(String[] args) {
        int[] ints = {1,535,23,889,123,435,0,-1,9};
        int len = ints.length;
        int[] ints1 = new int[len];
        for (int i = 0; i < len; i++) {
            ints1[i] = ints[len-1-i];
        }
        ints=ints1;
        for (int i = 0; i < len; i++) {
            System.out.println(ints[i]);
        }
    }
}
public class Test {
    public static void main(String[] args) {
        int[] ints = {1,535,23,889,123,435,0,-1,9};
        int len = ints.length;
        int[] ints1 = new int[len];
        for (int i = len-1,j=0; i >0 ; i--,j++) {
            ints1[j] = ints[i];
        }
        ints=ints1;
        for (int i = 0; i < len; i++) {
            System.out.println(ints[i]);
        }
    }
}

 数组添加:

public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        //注意要把第10行代码移到do while循环的前面
        int[] arr = {1, 2, 3};
        do {
            int[] arr1 = new int[arr.length + 1];
            for (int i = 0; i < arr.length; i++) {
                arr1[i] = arr[i];
            }
            arr1[arr.length] = scanner.nextInt();
            arr = arr1;
            for (int i = 0; i < arr.length; i++) {
                System.out.print(arr[i] + "\t");
            }
            System.out.println("是否继续输入 y/n");
            char c = scanner.next().charAt(0);
            if (c == 'n') {
                break;
            }
        } while (true);
        System.out.println("添加完成");
    }
}

排序

1、冒泡排序的思路

 

2、冒泡排序的代码

public class Test {
    public static void main(String[] args) {
        int[] arr = {24, 69, 80, 57, 13, -1, 30, 200, -100};
        int temp;
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    temp = arr[j + 1];
                    arr[j + 1] = arr[j];
                    arr[j] = temp;
                }
            }
            System.out.println("\n第+" + (i + 1) + "+轮循环");
            for (int j = 0; j < arr.length; j++) {
                System.out.print(arr[j] + "\t");
            }
        }
    }
}

杨辉三角

代码:

public class Test {
    public static void main(String[] args) {
        int[][] arr = new int[5][];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = new int[i+1];
            for (int j = 0; j < arr[i].length; j++) {
                if(j==0|j==arr[i].length-1){
                    arr[i][j] = 1;
                }else {
                    arr[i][j] = arr[i-1][j-1]+arr[i-1][j];
                }
            }
        }
        for (int i = 0; i < arr.length; i++) {
            for (int j = 0; j < arr[i].length; j++) {
                System.out.print(arr[i][j]+" ");
            }
            System.out.println();
        }
    }
}

 

二、本章作业

 思路一:先扩容,再冒泡排序,代码如下

public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int nextInt = sc.nextInt();
        int[] arr = {10, 12, 45, 90};
        int[] arr1 = new int[arr.length + 1];
        for (int i = 0; i < arr.length; i++) {
            arr1[i] = arr[i];
        }
        arr1[arr.length] = nextInt;
        arr = arr1;
        int temp;
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.print(arr[i] + " ");
        }
    }
}

思路二:先找出添加的数字在数组中的索引,再遍历

//遍历部分自己写的代码
public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int nextInt = sc.nextInt();
        int[] arr = {10, 12, 45, 90};
        int[] arr1 = new int[arr.length + 1];
        int index = -1;
        for (int i = 0; i < arr.length; i++) {
            if(nextInt<=arr[i]){
                index = i;
                break;
            }
        }
        if(index==-1){
            index = arr.length;
        }
        for (int i = 0; i < arr1.length; i++) {
            if(i<index){
                arr1[i] = arr[i];
            }else if(i==index){
                arr1[i] = nextInt;
            }else {
                arr1[i] = arr[i-1];
            }
        }
        for (int i = 0; i < arr1.length; i++) {
            System.out.print(arr1[i]+" ");
        }
    }
}
//老韩视频中的代码
public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int nextInt = sc.nextInt();
        int[] arr = {10, 12, 45, 90};
        int[] arr1 = new int[arr.length + 1];
        int index = -1;
        for (int i = 0; i < arr.length; i++) {
            if(nextInt<=arr[i]){
                index = i;
                break;
            }
        }
        if(index==-1){
            index = arr.length;
        }
        for (int i = 0,j=0; i < arr1.length; i++) {
            if(i!=index){
                arr1[i] = arr[j];
                j++;
            }else {
                arr1[i] = nextInt;
            }
        }
        for (int i = 0; i < arr1.length; i++) {
            System.out.print(arr1[i]+" ");
        }
    }
}

完!

B站上的韩顺平老师的《Linux学习笔记》系列课程非常值得推荐。通过这个课程,我学到了很多关于Linux操作系统的知识和技能。 首先,韩老师在课程中详细介绍了Linux的基本概念和特点。我清楚地了解到Linux是一个开源的操作系统,具有稳定性、安全性和可定制性强的特点。这让我对Linux有了更深入的理解,也更有信心去学习和使用它。 其次,韩老师从基础开始,逐步讲解了Linux的安装和配置。他用简单明了的语言和实际操作的示范,帮助我了解了如何在虚拟机上安装Linux系统,并设置网络、用户账户、文件系统等。这为我后续的学习和实践打下了坚实的基础。 此外,韩老师还讲解了Linux的常用命令和工具。他详细介绍了常用的文件和目录操作命令,比如cd、ls、mkdir、cp等。同时,他还讲解了grep、sed、awk等强大的文本处理工具的使用方法。这些内容帮助我更加高效地进行文件管理和数据处理。 最后,韩老师还介绍了Linux的网络管理和安全防护。他讲解了如何配置网络连接、使用ssh远程登录以及设置防火墙等内容。这些知识对我了解网络和保护系统安全非常有帮助。 总的来说,韩顺平老师的《Linux学习笔记》课程非常实用,对于初学者来说是入门学习Linux的好选择。他通过深入浅出的讲解和丰富的实操示范,让我可以轻松地学习到Linux的基本知识和操作技巧。我相信通过学习这个课程,我会在Linux领域有更进一步的发展。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值