阅读时间: 5分钟
Bubble Sort (泡沫排序)是一种简单的排序演算法。
它重複地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。
走访数列的工作是重複地进行直到没有再需要交换,也就是说该数列已经排序完成。
Bubble Sort (泡沫排序)可以原地排序。尽管这个演算法是最简单了解和实作的排序演算法之一,但它对于包含大量的元素的数列排序是很没有效率的。
泡沫排序演算法的运作如下:
比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重複以上的步骤,除了最后一个。持续每次对越来越少的元素重複上面的步骤,直到没有任何一对数字需要比较。例子:
public class BubbleSortExample { static void bubbleSort(int[] arr) { int n = arr.length; int temp = 0; for(int i=0; i < n; i++){ for(int j=1; j < (n-i); j++){ if(arr[j-1] > arr[j]){ //交换元素 temp = arr[j-1]; arr[j-1] = arr[j]; arr[j] = temp; } } } } public static void main(String[] args) { int arr[] ={3,60,35,2,45,320,5}; System.out.println("原来的次序"); for(int i=0; i < arr.length; i++){ System.out.print(arr[i] + " "); } System.out.println(); bubbleSort(arr);//利用泡沫排序 System.out.println("使用泡沫排序"); for(int i=0; i < arr.length; i++){ System.out.print(arr[i] + " "); } } }