算法描述
蛮力法在排序问题上还有另一个应用,它比较表中的相邻元素,如果它们是逆序的话就交换它们的位置。重复多次以后,最终,最大的元素就“沉到”列表的最后一个位置。第二遍操作将第二大的元素沉下去。这样一直做, 直到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