它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。
1 package edu.aeon.algorithm; 2 3 import java.util.Arrays; 4 5 /** 6 * 冒泡排序 7 * @author lzj 8 * @create 2017年10月30日 上午9:43:20 9 */ 10 public class BubbleSort { 11 /** 12 * 冒泡排序算法实现 13 * at 2017年10月30日 上午9:44:21 by lzj 14 * @Parameters1 int[] values 要冒泡排序的数组 15 * @Returns void 16 */ 17 public static void sort(int[] values) { 18 int temp; 19 for(int i=0;i<values.length;i++) { 20 for(int j=0;j<values.length-1-i;j++) { 21 if(values[j]>values[j+1]) { 22 //借助第三方变量进行交换 23 temp =values[j]; 24 values[j]=values[j+1]; 25 values[j+1]=temp; 26 } 27 } 28 } 29 } 30 /** 31 * at 2017年10月30日 上午9:43:20 by lzj 32 * @Parameters1 String[] args 33 * @Returns void 34 */ 35 public static void main(String[] args) { 36 // TODO Auto-generated method stub 37 int[] values=new int[10]; 38 //初始化一个长度为10,且元素为1到10的随机整数 39 for(int i=0;i<values.length;i++) { 40 values[i]=(int)(Math.random()*10); 41 } 42 System.out.println("排序前的结果为:"+Arrays.toString(values)); 43 BubbleSort.sort(values); 44 System.out.println("排序后的结果为:"+Arrays.toString(values)); 45 } 46 47 }
执行结果截图附上: