网站首页 > java教程 正文
数组的概念
数组是用共有名称引用的相同变量的集合。【河东狮一吼,概念真绕口】
考虑一下,在JAVA中,我们如何表达一个学生的成绩?
简单处理的话,我们可以用int类型的变量代表学生的成绩:int score = 98;
那么,如果一个班级有50名学生,我们如何表达一个班级所有学生的成绩呢?很显然,这50个学生的成绩都可以用int类型的变量来表示,然后用相同的变量名引用,这就是数组:int[] scores = new int[50];
数组的声明
首先,声明数组的语法格式有两种,分别是:
数据类型[] 变量名;
数据类型 变量名[];
数组的初始化
数组初始化的语法格式:
A)动态初始化
第一步:指定数组长度,用new开辟堆内存空间
int[] data = new data[6];
第二步:用循环为数组的每一个元素赋值。
for(int i=0; i<data.length; i++) { data[i] = i + 10; }
B)静态初始化:在开辟堆内存的同时为每一个元素赋值
int[] data = new []{5, 2, 1, 8, 7, 6};
静态初始化还有另外一种简单的写法:
int[] data = {5, 2, 1, 8, 7, 6};
数组的遍历
循环遍历数组的元素,例如遍历输出输的每一个元素:
for(int i=0; i<data.length; i++) { System.out.println(data[i]); }
冒泡排序
如果有一个数组,里面有n个乱序的int类型数,我们如何将它进行升序或者降序排列呢?
例如,我们有如下数组:
int[] data = new int[]{5,2,1,8,7,6};
如果升序的话,我们希望得到:
{1,2,5,6,7,8}
那么,我们该如何做呢?
这里,我为大家介绍一种最为简单的方法:冒泡排序,冒泡排序的思路是:
1)第一个数和第二个数比较,将小的放在第一个位置,大的放在第二个位置;
2)然后第二个数和第三个数比较,将小的放在第二个位置,大的放在第三个位置;
3)依次类推,第n-1个数数和第n个数比较,将小的放在第n-1个位置,大的放在第n个位置;
4)经过以上的比较和交换,我们可以保证,最后一个位置(第n个位置)放的数就是这个数组里面最大的数。
5)然后,第一个数和第二个数比较,将小的放在第一个位置,大的放在第二个位置;
6)第二个数和第三个数比较,将小的放在第二个位置,大的放在第三个位置;
7)依次类推,第n-2个数数和第n-1个数比较,将小的放在第n-2个位置,大的放在第n-1个位置;
8)经过以上的比较和交换,我们可以保证,倒数第二个位置(第n-1个位置)放的数就是这个数组里面第二大的数。
9)重复上面的过程就可以实现升序排序。
冒泡排序的实现代码如下:
for(int i=0; i<data.length-1; i++) { for(int j=0; j<data.length-i-1; j++) { if(data[j] > data[j+1]) { int temp = data[j]; data[j] = data[j+1]; data[j+1] = temp; } } }
练习题
数组是初学者接触的第一个能够展开学习和练习的知识,通过数组的练习题,我们可以掌握编程的基本思路,找到编程的感觉。下面这些基本练习题,各位初学者可以尝试做一下:
1: 求data的最大值
2: 求data的最大值的索引
3: 求data的最小值
4: 求data的最小值的索引
5: 求data的平均数
6: 由小到大排序【升序排序】
7: 由大到小排序【降序排序】
8: 给定一个数,求这个数在data里面的索引,如果data里面没有这个数,输出-1
- 上一篇: 排序算法整合(冒泡,快速,希尔,拓扑,归并)
- 下一篇: 冒泡排序法(冒泡排序法java代码)
猜你喜欢
- 2024-09-25 冒泡排序简单介绍(冒泡排序的一些简单例题)
- 2024-09-25 数据结构与算法-排序(一)冒泡排序
- 2024-09-25 冒泡排序法(冒泡排序法java代码)
- 2024-09-25 排序算法整合(冒泡,快速,希尔,拓扑,归并)
- 2024-09-25 冒泡排序这个要单独说下(冒泡排序的用法)
- 2024-09-25 冒泡排序(Bubble Sort)的学习(冒泡排序方法详解)
- 2024-09-25 冒泡排序(Bubble Sort)是一种简单的排序算法...
- 2024-09-25 算法篇:Java实现九种排序算法6:交换排序之冒泡排序
- 2024-09-25 「算法」冒泡排序图文讲解(冒泡排序算法的基本思路)
- 2024-09-25 Java中常见的排序算法有哪些?——冒泡排序
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)