day4

day4

数组篇

//        数组创建的俩种方式
//        动态创建
        int[] nums = new int[10];
//        静态创建
        int[] nums_1 = {1,2,3,4,5,6};

        System.out.println(nums.length);
        System.out.println(nums_1.length);

//        内存分析
//        定义时先存入栈中,然后在堆中开辟空间,调用超出数组长度时会出现栈溢出
        System.out.println(nums[11]);
        System.out.println(nums_1[6]);
//        java.lang.ArrayIndexOutOfBoundsException: Index 11 out of bounds for length 10

java栈:用于存放局部变量表

java堆:是所有线程共享的一块内存区域,用于存放对象实例,大部分的数组及对象实例都在此分配内存

当输出时超出数组长

//会提示相同错误
//ArrayIndexOutOfBoundsException:

数组下的类型保持一致性,同时创建完长度也就确定了

增强for循环

int[] arrays = {1,2,3,4,5};
for (int array:arrays){
    System.out.println(array);
}

二维数组

//        多维数组
int [][] array = {{1,2},{2,3},{3,4},{4,5}};

for (int i = 0; i < array.length; i++) {
    for (int j = 0; j < array[i].length; j++) {
        System.out.println(array[i][j]);
    }
}

内置排序算法调用

Arrays.sort(a);

冒泡排序(bubble)

for (int i = 0; i < a.length; i++) {
    for (int j = 0; j < a.length-i-1; j++) {
        if (a[j]>a[j+1]){
            int temp = a[j];
            a[j]=a[j+1];
            a[j+1]=temp;
        }
    }
    System.out.println(Arrays.toString(a));
}

改进

  • 在第一层循环后加一个判断类型,
  • judge = false
  • 如果在第二层循环中有过交换,则将judge赋值为ture
  • 如果此轮比较没有交换数据,则说明已经排序完成,退出此次循环
int count2 = 0;
for (int i = 0; i < b.length; i++) {
    boolean judge = false;
    for (int j = 0; j < b.length-i-1; j++) {
        if (b[j]>b[j+1]){
            int temp = b[j];
            b[j]=b[j+1];
            b[j+1]=temp;
            judge = true;
        }
        count2++;
    }
    if (judge == false){
        break;
    }
    System.out.println(Arrays.toString(b));
}
稀疏数组

查找有效坐标

posted on   lsyorha  阅读(38)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示