冒泡排序是最常见的数组排序算法之一,他排序数组时,根据if循环中的条件语句,把小数(或大数)往前放,把大数(或小数)往后放,类似水中气泡,故称作冒泡排序。
冒泡排序的基本思想就是对比以及交换元素位置。
冒泡排序有双层for循环和一层if循环来实现。双层for循环中的外层for循环是控制循环次数(注意:循环次数比数组的长度小1);内层for循环是遍历数组,每遍历一次减去循环的次数。if循环是根据条件式作对比,符合条件表达式,则进行交换元素位置,不符合,则元素位置不动。
具体实例如图:
public class BubblingSort{
public static void main(String [] args ){
int[] a={23,25,34,1,-45,-23}; //定义数组。
for(int i=1;i<a.length;i++){ //外层for循环,定义循环次数。
for(int j=0;j<a.length-i;j++){ //内层for循环,遍历数组。
if(a[j]>a[j+1]){ //if循环,对两个相邻元素进行比较。
int num=a[j]; //将前一个元素的值赋给一个新变量。
a[j]=a[j+1]; //将后一个元素的值赋给前一个元素。
a[j+1]=num; //将前一个元素的值赋给后一个元素。
}
}
}
System.out.println("冒泡排序从小到大依次为:");
for(int i=0;i<a.length;i++){ //遍历数组。
System.out.print(a[i]+",");
}
}
}
输出结果如图:
-
要想改为从小到大的顺序排列,只需改动if循环语句的条件表达式中的比较运算符即可。