1. 原理
冒泡排序,顾名思义就是将想冒泡一样将最大的那个数冒到最高点。 在一个数组中,遍历这个数组,从第一个数开始,和后面一个数两两比较, 如果前面一个数比后面一个数大,就交换2个数的位置,这样可保证数组中 最大的那个数一定在最后一位。这是第一次比较,接下来这个最大的数就 不参与比较了,第二次比较重复上面操作,将第二大的数放在倒数第二位。 同理,每次都把最大的数放在参与比较的数的最后一位, 比到参与的只剩下一位数时,排序完成。
2.举例
假设有个长度为4的数组 a[]={22,3,44,21},下面用冒泡排序算法对其进行升序排序。 第一趟比较:22和3比较,22大于3,于是交换位置 数组变成 a[]={3,22,44,21} 22和44比较,22小于44,不做操作 数组为a[]={3,22,44,21} 44和21比较,44大于22,于是交换位置 数组为a[]={3,22,21,44} 44成功冒泡,44不参与下一趟比较了 第二趟比较:3和22比较,3小于22,不做操作 数组为a[]={3,22,21,44} 22和21比较,22大于21,于是交换 数组变为a[]={3,21,22,44} 22成功冒泡,44和22不参与下一趟比较 第三趟比较:3和21比较,3小于21 不做操作 数组为a[]={3,21,22,44} 21和22比较,21小于22 不做操作 数组为a[]={3,21,22,44} 21成功冒泡,44,22,21不参与下次比较 由于参与比较的只剩下3一个数了,排序结束,结果为数组升序排序。
3.java代码实现
package sort;
import java.util.Arrays;
public class BubbleSort {
public static void main(String[] args) {
int a[]={22,3,44,21};
bubbleSort(a);
System.out.println(Arrays.toString(a));
}
//冒泡排序算法
public static void bubbleSort(int[] a){
int temp;
for(int i=0;i<a.length-1;i++){
for(int j=0;j<a.length-1-i;j++){
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
}
}
打印结果为:[3, 21, 22, 44]
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。