二维数组及冒泡排序
来源:互联网 发布:windows phone符号输入 编辑:程序博客网 时间:2024/05/29 18:33
二维数组
如果把一维数组当成几何中的线性图形,那么二维数组就相当于是一个表格。
- 二维数组的声明格式
数据类型 数组名[][];
数组名 = new 数据类型[行的个数] [列的个数];
也可以用下面这种方式
数据类型 数组名[][]=new 数据类型[行的个数] [列的个数]; - 二维数组金泰初始化
数据类型 数组名[][] = {
{第0行初值},
{第1行初值},
…
{第n行初值},
}; - 二维数组的遍历
public class Demo1{ public static void main(String[] args){ int a[][]=new int[2][3]; a[0][0]=1; a[0][1]=2; a[0][2]=3; a[1][0]=4; a[1][1]=5; a[1][2]=6; //遍历二维数组 for (int i=0;i<a.length ;i++ ) { for (int j =0;j<a[i].length ;j++ ) { System.out.print(a[i][j]+"\t"); } System.out.println(); } }}
用for循环的嵌套来遍历二维数组,多维数组就使用多少个多程循环来遍历。
冒泡排序
原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,
这样一趟过去后,最大或最小的数字被交换到了最后一位,
然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子
例子为从小到大排序,
原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 |
第一趟排序(外循环)
第一次两两比较6 > 2交换(内循环)
交换前状态| 6 | 2 | 4 | 1 | 5 | 9 |
交换后状态| 2 | 6 | 4 | 1 | 5 | 9 |
第二次两两比较,6 > 4交换
交换前状态| 2 | 6 | 4 | 1 | 5 | 9 |
交换后状态| 2 | 4 | 6 | 1 | 5 | 9 |
第三次两两比较,6 > 1交换
交换前状态| 2 | 4 | 6 | 1 | 5 | 9 |
交换后状态| 2 | 4 | 1 | 6 | 5 | 9 |
第四次两两比较,6 > 5交换
交换前状态| 2 | 4 | 1 | 6 | 5 | 9 |
交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |
第五次两两比较,6 < 9不交换
交换前状态| 2 | 4 | 1 | 5 | 6 | 9 |
交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |
第二趟排序(外循环)
第一次两两比较2 < 4不交换
交换前状态| 2 | 4 | 1 | 5 | 6 | 9 |
交换后状态| 2 | 4 | 1 | 5 | 6 | 9 |
第二次两两比较,4 > 1交换
交换前状态| 2 | 4 | 1 | 5 | 6 | 9 |
交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |
第三次两两比较,4 < 5不交换
交换前状态| 2 | 1 | 4 | 5 | 6 | 9 |
交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |
第四次两两比较,5 < 6不交换
交换前状态| 2 | 1 | 4 | 5 | 6 | 9 |
交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |
第三趟排序(外循环)
第一次两两比较2 > 1交换
交换后状态| 2 | 1 | 4 | 5 | 6 | 9 |
交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |
第二次两两比较,2 < 4不交换
交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |
交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |
第三次两两比较,4 < 5不交换
交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |
交换后状态| 1 | 2 | 4 | 5 | 6 | 9 |
第四趟排序(外循环)无交换
第五趟排序(外循环)无交换
排序完毕,输出最终结果1 2 4 5 6 9
代码仅供参考
//冒泡排序-从大到小class Demo9 { public static void main(String[] args) { int a[]={11,22,33,44,55,66,77,88,99}; /* for (i = 0; i < n; i++) for (j = 1; j < n - i; j++) if (a[j - 1] > a[j]) Swap(a[j - 1], a[j]); */ for (int i =0;i<a.length-1 ;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("第"+(i+1)+"次排序的结果:"); for (int j=0;j<a.length ;j++ ) { System.out.print(a[j]+"\t"); } System.out.println(); } System.out.println("最终的排序结果是:"); for (int i=0;i<a.length ;i++ ) { System.out.print(a[i]+"\t"); } }}
- 二维数组及冒泡排序
- 二维数组冒泡排序
- 二维数组冒泡排序
- C二维数组冒泡排序
- 二维数组的冒泡排序
- Java二维数组冒泡排序
- 二维数组和冒泡排序
- java二维数组冒泡排序
- 二维指针数组冒泡排序
- 数组冒泡排序 二维数组元素排序
- java-冒泡排序 选择排序 二维数组
- 二维数组排序(冒泡方式)
- Java基础---二维数组、冒泡排序法
- 2017.4.8(二维数组,冒泡排序)
- JAVA-5-String类和StringBuffer类、二维数组、形参、冒泡排序及选择排序、Arrays数组工具类
- java(4)--排序算法及二维数组
- 数组的冒泡排序及拷贝
- JAVA数组操作及选择、冒泡排序
- NanoPi M2编译Debian步骤详解
- Android 实现ListView的展开式动画ExpandAnimation
- Handler源码分析
- Linux开启ssh服务
- (一)stl源码剖析学习,遗留问题在3.7
- 二维数组及冒泡排序
- (5)若不想使用编译器自动生成的函数,就该明确拒绝
- ACM新手水题解答
- LeetCode题解:345. Reverse Vowels of a String
- module作为多个APP的业务包依赖导入studio不能提交SVN不能与源文件的同步修改内容的问题
- Mybatis中#和$的区别
- (6)为多态基类声明virtual析构函数
- Kali Rolling 2016.1 安装无线网卡驱动
- PHP下foreach的作用域,对数组的操作影响