今天把冒泡排序补全一下
冒泡排序的核心思想就是将剩下的元素中通过交换的方式将最大的交换上来,这种方式有点类似冒泡,所以叫冒泡排序,没啥技巧
比较两个相邻的元素,将值大的元素交换到右边
举个例子:
数组:[3,44,38,5,47,15,36,26,27,2,46,4,19,50,48]
第一轮:
我们遍历数组,两两比较,大的数字后移,在一次循环过后,最大的数值 50 成功放到最后一个位置
第二轮:
只遍历前面的数组元素,两两比较,大的数字后移,在一次循环过后,最大的数值 48 成功放到倒数第二个位置
以此类推:
两层循环:外层循环循环位置,内存循环选出最大的数值
看下gif 图:
、
package com.example.demo;
import java.util.Arrays;
/**
* 冒泡排序
*
* @author 香菜
*/
public class Bubble {
public static void bubble(int[] a) {
for (int i = a.length - 1; i >= 0; i--) {
for (int j = a.length - 1; j >= 0; j--) {
if (a[i] > a[j]) {
int temp;
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
System.out.println(Arrays.toString(a));
}
public static void main(String[] args) {
int[] a = {3, 44, 38, 5, 47, 15, 36, 26, 27, 2, 46, 4, 19, 50, 48};
bubble(a);
}
}