Java冒泡算法和代码详述
-
冒泡排序算法是Java排序算法中最基本,也是最有名的算法之一
-
代码分为两层循环,外层冒泡轮数,里层依次比较
-
代码说明:
package arrays; import java.util.Arrays; public class arraysDemo06 { public static void main(String[] args) { int[] array1={12,33,55,1,154,1563}; //调用aort方法,将数组array1进行降序排序 aort(array1); //调用系统的Arrays类的转换为String方法,将数组array1输出 System.out.println(Arrays.toString(array1)); } public static int[] aort(int[] array){ int temp=0;//定义一个中间变量 //第一层循环,循环外层的轮数 for(int i=0;i<array.length-1;i++){ //第一层循环,开始依次比较两个数的大小 for (int j=0;j<array.length-1-i;j++){ if(array[j+1]>array[j]){ //将前一个数赋给中间变量 temp=array[j]; //将后一个数赋给前一个数 array[j]=array[j+1]; //将中间变量赋给后一个数,完成两个数的交换 array[j+1]=temp; } } } return array; } }
package arrays; import java.util.Arrays; public class arraysDemo06 { public static void main(String[] args) { int[] array1={12,33,55,1,154,1563}; ascend(array1); System.out.println(Arrays.toString(array1)); } //升序排序 public static int[] ascend(int[] array){ int temp; 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]){ temp=array[j]; array[j]=array[j+1]; array[j+1]=temp; } } } return array; } }
package arrays;
import java.util.Arrays;
public class arraysDemo07 {
public static void main(String[] args) {
int[] array1={12,1,14,5,6,17};
ascend(array1);
System.out.println(Arrays.toString(array1));
}
//优化
public static int[] ascend(int[] array){
int temp=0;
for(int i=0;i<array.length-1;i++){
boolean flag=false;//定义一个标签,减少没有意义的循环
for(int j=0;j<array.length-1-i;j++){
if(array[j]>array[j+1]){
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
flag=true;
}
}
if(flag=false){
break;
}
}
return array;
}
}