冒泡排序(英语:Bubble Sort)
是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
动画示意
实现示例(Java语言)
1 public class BubbleSortExample { 2 3 static void bubbleSort(int[] arr){ 4 int len = arr.length; 5 int temp = 0; 6 for(int i=0;i<len;i++){ 7 /*从 1 至 len-i 8 for (int j=1;j<(len-i);j++){ */ 9 /*从 len-1 至 i*/ 10 for(int j=(len-1);j>i;j--){ 11 if(arr[j-1]>arr[j]){ 12 //交换元素 13 temp=arr[j-1]; 14 arr[j-1]=arr[j]; 15 arr[j]=temp; 16 } 17 } 18 } 19 } 20 21 public static void main(String[] args) { 22 // TODO Auto-generated method stub 23 int arr[]={11,3,2,5,13,7,19}; 24 25 System.out.println("排序前的数列:"); 26 for(int i=0;i<arr.length;i++){ 27 System.out.print(arr[i]+" "); 28 } 29 System.out.println(); 30 31 bubbleSort(arr); 32 System.out.println("排序后的数列:"); 33 for(int i=0;i<arr.length;i++){ 34 System.out.print(arr[i]+" "); 35 } 36 } 37 38 }
参考链接: