冒泡排序,面试经常遇到的算法题目,其实冒泡和上学时候站队是一个道理,个子小的靠前,个子大的靠后。其实和选择排序类似吧,选择排序是找到最小值后再交换位置,而冒泡是只要遇到前者比后者大的就交换位置。这样自然会有一些弊端,如果这个数组是升序排列那么排序的速度将会是最快的,但是如果是降序排列速度将会是最慢的。
package bubbling; /** * 冒泡排序 * * @author zy 刘会发 * @since 2020/4/9 */ public class Bubbling { public static void ari() { int a[] = new int[]{5, 2, 7, 6, 3, 8, 9, 10, 20, 13, 15, 11}; for (int i = 0; i < a.length; i++) { for (int j = i + 1; j < a.length; j++) { if (a[i] > a[j]) { exchange(a, i, j);//交换 } } } for (int i = 0; i < a.length; i++) { System.out.print(a[i] + ","); } } static void exchange(int[] a, int i, int j) { int temp = a[i]; a[i] = a[j]; a[j] = temp; } public static void main(String[] args) { ari(); } }