一、冒泡排序法
public class Demo01 {
public static void main(String[] args) {
//1、从前向后遍历
//2、相邻两数比较,不满足顺序则交换;
int [] a=new int[5];
for (int i = 0; i < a.length; i++) {
a[i]=(int)(Math.random()*100);
}
System.out.println(Arrays.toString(a));
for (int i = 0; i < a.length-1; i++) {
boolean isChanged=false;
for (int j = 0; j <a.length-1-i ; j++) {
//a.length-1 为了抵消 j+1 防止数组越界
if (a[j]>a[j+1]){
isChanged=true;
int tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
if (!isChanged){
System.out.println("数组本轮没交换,已经有序,不需要继续比较");
break;
}
}
System.out.println(Arrays.toString(a));
}
}
二、使用Arrays类操作数组
使用java.util.Arrays类
java.util包提供的工具类
Arrays类提供操作数组的方法,如:排序、查询
Arrays类的sort()方法: 对数组进行升序排列
- Arrays.sort(数组名);
Arrays类
方法名称 | 说明 |
---|---|
boolean equals(array1,array2) | 比较array1和array2两个数组是否相等 |
sort(array) | 对数组array的元素进行升序排列 |
String toString(array) | 将一个数组array转换成一个字符串 |
void fill(array,val) | 把数组array所有元素都赋值为val |
copyOf(array,length) | 把数组array复制成一个长度为length的新数组,返回类型与复制的数组一致 |
int binarySearch(array, val) | 查询元素值val在数组array中的下标(要求数组中元素已经按升序排列) |
三、二维数组
<数据类型> [ ][ ] 数组名; 或者 <数据类型> 数组名 [ ][ ];
定义二维数组时,要定义最大维数
二维数组与内存
二维数组的定义
遍历二维数组
int [][]a={
1,2,3,4,5,6};
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++){
System.out.print(Arrays.toString(a[i]));
}
}