バブルソートの省略式(昇順)
N個の数字を並べます。
ペアワイズ比較は小さいです。
外側のループN-1と
内側のループN-1-I
が昇順で示されています。
//先建立一个随机的长度的数组
int[] a=new int[10];
for(int i=0;i<10;i++){
a[i]=(int)(Math.random()*100);
}
for(int i=0;i<a.length;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
int tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
}
}
}
System.out.print(Arrays.toString(a));
此为冒泡排序。
选择排序,可以说减少了交换次数
//先选出数组中最大(小)的数,依次排,再在未排序的数中继续选出最大(小)值。
使用java.util.Arrays类
java.util包提供的工具类
Arrays类提供操作数组的方法,如:排序、查询
Arrays类的sort()方法: 对数组进行升序排列
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210112194554845.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2pva2VydGlnZXI=,size_16,color_FFFFFF,t_70)
用Arrays类升序排列一组字符,并查找某个特殊字符在升序后数组中的位置
Arrays.sort(a);
Arrays.binarySearch(a,1);
多维数组
三维及以上的数组很少使用
主要使用二维数组
从语法上Java支持多维数组
从内存分配原理的角度讲,只有一维数组
<数据类型> [ ][ ] 数组名; 或者 <数据类型> 数组名 [ ][ ];