栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

数 组(Java)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数 组(Java)

今天把没有看完的数组看完了,收获颇多,今天在这里给大家分享一下

数组声明的两种方式:
  1. 第一种:数据类型 [] 数组名字          例如:int [] a;
  2. 第二种:数据类型 数组的名字 []       例如: int a [];
数组的创建:
  • 声明数组的同时,根据指定的长度分配内存,但数组中元素值都为默认的初始化值          int[] a= new int[10];
  • 声明数组并分配内存,同时将其初始化          int[] b= new int[]{1, 2, 3, 4, 5};
  • 与前一种方式相同,仅仅只是语法相对简略          int[] c = {1, 2, 3, 4, 5};

注意:

  •  前面定义的数组类型需要和后面的数据类型相一致;
  • 后面的数据类型字节小的可以自动转化为字节大的数据类型(具体见数据类型);
  • 当大括号里的元素个数给定时,中括号中不能在说明数据个数,否则会违背命名规则;
  • 当数据个数给定时,数组是从a[0]开始计数的,所以当数组的个数有n个时,数组的最大访问元素为a[n-1];

在数组中,你应该具有空间想象能力,不然是很难将这部分吸收的,在数组中,利用最多的还是算法为主,现在给大家介绍2种算法,分别是冒泡算法和选择算法:

冒泡排序算法:

冒泡算法顾名思义就是利用泡泡原理,将轻的泡泡一步一步的从底下升上来,现在给大家简单的描述描述。

1. 算法步骤

比较相邻的元素。如果第一个比第二个大,就交换他们两个。

对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。

针对所有的元素重复以上的步骤,除了最后一个。

持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

2. 动图演示

 java代码实现

int [] a=new int[]{7,2,8,4,9};

        for (int i = 0; i < a.length-1; i++) {
            for (int j = 0; j < a.length-1-i;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));

 选择排序算法:

 原理:每一趟从待排序的记录中选出最小的元素,顺序放在已排好序的序列最后,直到全部记录排序完毕。也就是:每一趟在n-i+1(i=1,2,…n-1)个记录中选取关键字最小的记录作为有序序列中第i个记录。基于此思想的算法主要有、树型选择排简单选择排序序和堆排序。(这里只介绍常用的简单选择排序)

b) 简单选择排序的基本思想:给定数组:int[] arr={里面n个数据};第1趟排序,在待排序数据arr[1]~arr[n]中选出最小的数据,将它与arrr[1]交换;第2趟,在待排序数据arr[2]~arr[n]中选出最小的数据,将它与r[2]交换;以此类推,第i趟在待排序数据arr[i]~arr[n]中选出最小的数据,将它与r[i]交换,直到全部排序完成。

c) 举例:数组 int[] arr={5,2,8,4,9,1};

第一趟排序: 原始数据:5  2  8  4  9  1

最小数据1,把1放在首位,也就是1和5互换位置,

排序结果:1  2  8  4  9  5

-第二趟排序:

第1以外的数据{2  8  4  9  5}进行比较,2最小,

排序结果:1  2  8  4  9  5

第三趟排序:

除1、2以外的数据{8  4  9  5}进行比较,4最小,8和4交换

排序结果:1  2  4  8  9  5

第四趟排序:

除第1、2、4以外的其他数据{8  9  5}进行比较,5最小,8和5交换

排序结果:1  2  4  5  9  8

第五趟排序:

除第1、2、4、5以外的其他数据{9  8}进行比较,8最小,8和9交换

排序结果:1  2  4  5  8  9

代码实现:

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

            }

        }
        System.out.println(Arrays.toString(a));

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/937738.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号