排序的第一种方法:
冒泡排序
精髓:两个相邻的数 相互比较大小,然后互换位置。
我们随便写一个简单的数组。6,4,8,1
这四个数按照我们上面说的来排一下序
第一遍比较
4,6,8,1
4,6,8,1
4,6,1,8
图画的丑还望见谅 绝对原创
第一次比较我们确定了一个的最大值。
那我继续来第二次比较。
4,6,1,8
4,6,1,8
4,1,6,8
第二次比较我们又确定了一个值
第三次比较
1,4,6,8
第三次就排序好了。
接下来我们,利用上面整理的思路写出来,写一下。
public class lianxi1{
public static void main (String[]agrs){
//定义一个数组。搭建循环架构。
int []array = new int []{4,6,1,8};
for(int i = 0; i < array.length-1;i++){ // 控制循环次数
for(int j = 0; j < array.length-1-i;j++){ //用循环来比较,比较完一趟,确定一个数。直到数组比较完成。 控制控制两个数的交换的数,在两个数比较时控制他们两个下标的值不越界。如果越界了就读不出值。
//写一个交换素组元素的方法
if(array[j] > array[j+1]){ //比较两个数 因为递增的原因所以大于
int a = array[j]; //定义一个记录他们比较完存放的容器,交换两个数的位置
array[j] = array[j+1]; //交换两个数的位置
array[j+1] = a;
}
}
}
System.out.println(Arrays.toString(array)); //输出排列好的值
}
}
结果
1,4,6,8
总结
public class lianxi1 {
public static void main(String[]agrs) {
int[] array = new int []{};
for (int i = 0; i < array.length-1; i++) { //作用:让下标,在一个安全的界线,避免下标越界
for (int j = 0; j < array.length-1-i; j++) {//作用:一趟比较确定一个值,减少比较的次数。
if(array[i]>array[j+1]) { //相邻的两个的数比较 满足判断条件继续执行不满足继续在for里循环知道满足条件为止。
int temp = array[i]; //满足判断条件 储存比较后的值
array[i] = array[j+1]; // 换值操作。
array[j+1] = temp; //换值操作。
}
}
}
System.out.println(Arrays.toString(array)); //打印换值完成的数组。
}
}
接下来我们写一个冒泡排序的方法
public static void sore(int [] array){
for(int a = 0;a<array.length-1; a++){
for(int b = 0; b<array.length-1-a;b++){
int temp = array[a];
array[a] = array[b+1];
array[b+1] = temp;
}
}
}