冒泡排序法就是重复的遍历要排序的元素列,依次比较两个相邻的元素,如果顺序不符合我们的排序要求,就依靠中间变量将他们交换过来。这个过程重复的进行,直到没有需要交换的元素,说明排序已经完成。
原理:以对22,20,30,6按照从小到大顺序排列为例对冒泡排序法进行说明:
第一轮比较:
22,20,30,6 最初
20,22,30,6 比较22和20进行交换
20,22,30,6 比较22和30,不交换
20,22,6,30 比较30和6,进行交换
第一轮比较结束,最大值30已到最后,第二轮只比较前三个数字;
第二轮比较:
20,22,6,30 第一轮比较结果
20,22,6,30 比较20和22,不交换
20,6,22,30 比较22和6,进行交换
第二轮比较结束,前三个数字的最大值已到最后,第三轮只比较前两个数字;
第三轮比较:
20,6,22,30 第二轮比较结果
6,20,22,30 比较20和6,进行交换
排序结束。
由上面可以发现,比较的轮数为数字的个数减一;每轮比较的次数为数字的个数-现在的轮数(当然也可以对数字从第一个到最后一个都进行比较)
Java代码示例:
package sort;
public class BubbleSort {
public static void main(String[] args){
int[] arr={22,20,30,6};
//进行的轮数
for(int i=1;iarr[j+1]){
int c=arr[j];
arr[j]=arr[j+1];
arr[j+1]=c;
}
}
//第i轮比较的结果
System.out.println("第"+i+"轮比较结果");
for(int n=0;n
运行结果示例:



