自学了java有一段时间了,中间断断续续的。
得强制下自己了,否则“懒”瘾上来,挡不住了。
借助这个平台:1是巩固所学的知。2是想认识更多的小伙伴帮助我。
今天学了数组的排列,int[] a={85,75,65,58,42};
对里面的数进行由小到大排列,我学了两种方法:
1.使用Arrays.sort
import java.util.Arrays;
public class 数组排序 {
public static void main(String[] args) {
int[] a= {85,75,65,58,42}; //引入一个int型数组
Arrays.sort(a); //引入 Arrays工具
for(int b:a){ //遍历数组a
System.out.println(b) //打印数组
}
}
}
这个方法真简单。
2.使用冒泡排序
冒泡排序感觉有些复杂,我的理解就是:像高矮个排队一样,任意两个人比较,高的向后排,一次类推。关键得理解需要排多少次。
比如 85 75 65 58 42
第一轮:先拿出85和45比较,变成75,85,65,58,42
再拿出85和65比较,继续75,65,85,58,42
再拿出85和58比较,继续75,65,58,85,42
再拿出85和42比较,继续75,65,58,42,85
第二轮:先拿出75和65比较,变成65,75,58,42,85
再拿出75和58比较,继续65,58,75,42,85
再拿出75和42比较,继续65,58,42,75,85
第三轮:先拿出65和58比较,变成58,65,42,75,85
再拿出65和42比较,继续58,42,65,75,85
第四轮:只拿出58和42比较,变成42,58,65,75,85
这明显是个循环,还是个嵌套循环。第一轮4次,第二轮3次,第三轮2次,第四轮1次,而我们有5个数,明眼人应该可以看出规律:轮+次数==数组长度
public class 数组排序 {
public static void main(String[] args) {
int[] a= {85,75,65,58,45}; //引入一个int型数组
for(int i=0;i<a.length-1;i++) { //“轮”循环。注意下我们总共是4轮,而从0开始,0.1.2.3共4轮,所以要小于a.length-1或者写成小于等于a.length-2应该也可以。
for(int j=0;j<a.length-1-i;j++) { //“次”循环。刚好可以用数组长度a.length减去“轮”,但是我们是从0开始,所以应该是小于a.length-1-i或者小于等于a.length-2-i也可以。
if(a[j]>=a[j+1]) { //比较两个数。
int z=a[j]; //换位时,引入一个变量。相当于排队时,先让高的出来,矮的填上,高的再进去。高的出来的位置就是这个变量。
a[j]=a[j+1]; //矮的填到高的位置。
a[j+1]=z; //高的再进去。
}
}
}
for(int b:a) { //遍历数组a
System.out.println(b); //打印
}
}
}