算法(2)——冒泡排序
算法步骤:
1.比较前后相邻的二个数据,如果前面数据大于后面的数据,就将这二个数据交换。
2.这样对数组的第 0 个数据到 N-1 个数据进行一次遍历后,最大的一个数据就“沉”到数组第N-1 个位置。
3.N=N-1,如果 N 不为 0 就重复前面二步,否则排序完成
动画演示:
代码部分:
public class 冒泡排序 {
public void bubbleSort1(int [] a){
//数组的长度
int N = a.length - 1;
//需要N交换,才能得到有序数组
while (N != 0){
//对相邻的两个元素进行交换
for (int i = 0; i < N; i++) {
if (a[i] > a[i+1]){
//交换相邻两个元素
int tmp = a[i];
a[i] = a[i+1];
a[i+1] = tmp;
}
}
//去掉最后的原元素不比较
N--;
}
}
public static void main(String[] args) {
冒泡排序 mp = new 冒泡排序();
int [] a = {1,4,7,3,5,9,6,10,50,49,38} ;
mp.bubbleSort1(a);
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]);
System.out.print("--->");
}
}
}