java从小白到工程师--基础篇(四)
2018-01-26 13:58
197 查看
今天,一起学习一下java中非常重要的内容:数组和冒泡排序。
我们首先看一下数组的定义:
1.可存储相同数据类型数据于连续的存储单元中;
2.可通过指定数组的名称和长度来声明数组;
3.一旦声明大小,不可更改;
4.数组元素可以通过数组名和索引来进行访问(注:目前可以这样理解:存入的每一个数据就是一个元素;java中索引从0开始,即第一个元素的索引是0,第二个元素的索引是1)
5.数组可以是一维数组,也可以是多维(即数组的元素是数组)
示例:
运行结果:索引为2的元素是:3。
示例2:
遍历数组的两种常用方式
方式一:for循环遍历,示例如下:
方式二:增强for循环
展示案例之前先看一下语法:
for(类型 变量名 : 集合或者数组)
在快捷键提示下显示的内容是foreach
看一下示例代码:
下面我们将讲解一个比较经典也比较简单的算法——冒泡排序:
在开始讲解之前,先请大家看一段魔性的舞蹈。
大家通过舞蹈可以看出,我们在排序的时候并不能一口气让所有的数据都排排坐,吃果果。每次只能找出一个最大或者最小的元素,安排妥当。原理如下:
冒泡排序算法的运作如下:(从后往前)
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素
9cbc
应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
上述内容摘自百度百科。
下面我们将在代码中体现这一算法的逻辑。
运行结果如下:
很直观。
今天先写到这里,未完待续~~
我们首先看一下数组的定义:
1.可存储相同数据类型数据于连续的存储单元中;
2.可通过指定数组的名称和长度来声明数组;
3.一旦声明大小,不可更改;
4.数组元素可以通过数组名和索引来进行访问(注:目前可以这样理解:存入的每一个数据就是一个元素;java中索引从0开始,即第一个元素的索引是0,第二个元素的索引是1)
5.数组可以是一维数组,也可以是多维(即数组的元素是数组)
示例:
public static void main(String[] args) { int[] arr;//声明数组名 arr =new int[5];//声明数组大小,当然这两步可以合并为一步,此处只为更好理解 arr[0]=1;//为数组添加元素 arr[1]=2; arr[2]=3; arr[3]=4; arr[4]=5; System.out.println("索引为2的元素是:"+arr[2]);//字符串拼接使用“+” }
运行结果:索引为2的元素是:3。
示例2:
public static void main(String[] args) { int arr[] = new int[]{1,2,3,4,5};//定义数组 System.out.println(arr[2]);//取下角标是2的元素(第三个) }
遍历数组的两种常用方式
方式一:for循环遍历,示例如下:
public static void main(String[] args) { int arr[] = new int[]{1,2,3,4,5};//定义数组 for (int i = 0; i < arr.length; i++) {//arr.length为内置函数,可以得到数组arr的长度(一个元素算一个) System.out.println("第"+(i+1)+"个元素是:"+arr[i]);//字符拼接,i从零开始,下角标也是 } }
方式二:增强for循环
展示案例之前先看一下语法:
for(类型 变量名 : 集合或者数组)
在快捷键提示下显示的内容是foreach
看一下示例代码:
public static void main(String[] args) { int arr[] = new int[]{1,2,3,4,5};//定义数组 for (int i : arr) {//因为定义的是int类型数组,所以此处的类型要写int,其他类型同理 System.out.println("第"+(i+1)+"个元素是:"+arr[i]); } }
下面我们将讲解一个比较经典也比较简单的算法——冒泡排序:
在开始讲解之前,先请大家看一段魔性的舞蹈。
大家通过舞蹈可以看出,我们在排序的时候并不能一口气让所有的数据都排排坐,吃果果。每次只能找出一个最大或者最小的元素,安排妥当。原理如下:
冒泡排序算法的运作如下:(从后往前)
比较相邻的元素。如果第一个比第二个大,就交换他们两个。
对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素
9cbc
应该会是最大的数。
针对所有的元素重复以上的步骤,除了最后一个。
持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
上述内容摘自百度百科。
下面我们将在代码中体现这一算法的逻辑。
public static void main(String[] args) { int arr[] = new int[]{8,7,6,5,4,3,2,1};//定义数组 for(int i=0;i<arr.length-1;i++){//外循环控制循环次数,因为是两两比较,为了优化,此处次数-1 for(int j=0;j<arr.length-i-1;j++){//内循环,每次找到一个最大的数字放到最后 if(arr[j]>arr[j+1]){//交换条件,前一个比后一个大就互换 int temp = arr[j];//中间变量,相当于两个装满水的碗要互换,需要一个空碗,这个temp就是那个 空碗 arr[j] = arr[j+1]; arr[j+1] = temp; } } System.out.println("第"+(i+1)+"次排序结果:"); for (int k : arr) {//遍历数组查看结果 System.out.print(k+" ");//此处结果不换行,没有ln } System.out.println();//换行 } System.out.println("最终排序结果:"); for (int i : arr) { System.out.print(i+" "); } }
运行结果如下:
很直观。
今天先写到这里,未完待续~~
相关文章推荐
- java从小白到工程师--基础篇(一)
- Java工程师、程序员或者是初学Java语言的小白选手,需要了解
- 小白学java-基础篇(super、final、抽象类、接口、多态、instanceof、包装类)
- 小白学java-基础篇(异常处理、多线程)
- 小白学java-基础篇(IO包)
- java 从小白进阶中级开发工程师应该会的一些技术
- 小白学java-基础篇(类、对象、String、this)
- 小白学java-基础篇(泛型)
- 小白学java-基础篇(Annotation)
- java从小白到工程师--基础篇(二)
- 小白学java-基础篇(网络)
- 小白学java-基础篇(图形界面)
- 小白学java-基础篇(数据库编程)
- 小白学java-基础篇(数组、方法)
- java工程师成神之路-基础篇
- 小白学java-基础篇(数据类型、运算、循环语句)
- Java语言程序设计-基础篇-第八版-编程练习题-第七章
- Java集合基础篇(1)-基本介绍
- java高级工程师面试问题集结号(three)
- 2017暑假实习生java开发工程师面试(京东)