蛮力法在排序问题上还有另一个应用,它比较表中的相邻元素,如果它们是逆序的话就交换它们的位置。重复多次以后,最终,最大的元素就“沉到”列表的最后一个位置。第二遍操作将第二大的元素沉下去。这样一直做, 直到n-1遍以后,该列表就排好序了。第i(0≤i≤n- 2)遍冒泡排序可以用下面的示意图来表示:
public class TEST { public static void main(String[] args) { // TODO Auto-generated method stub int a[]= {89,45,68,90,29,34,17}; System.out.print("排序前:"); for(int k=0;k<a.length;k++){ System.out.print(a[k]+" "); } System.out.println(); for(int i=0;i<a.length-1;i++) { for(int j=0;j<a.length-1-i;j++) { if(a[j+1]<a[j]) { int temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } System.out.print("排序后:"); for(int k=0;k<a.length;k++){ System.out.print(a[k]+" "); } } }
排序前:89 45 68 90 29 34 17
排序后:17 29 34 45 68 89 90