vlambda博客
学习文章列表

算法(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("--->"); } }}