冒泡排序的基本思想:每次比较相邻的两个元素,如果不符合排序顺序,就交换位置。
冒泡排序的算法核心是冒泡,假如有10个数,要进行9次运算,每次一次运算都挑选出最大(最小)的数,放到数组的最后(最前);每次都从第一个数开始,已经排序好放到最后的数不再参与。
第一次冒泡时,从第一个数开始,需要比全部的数;最大的数放到了最后;
第二次冒泡时,从第一个数开始,只需要比N-1个数,因为最后一个数是最大的,不需要参加比对;
......
第N-1次冒泡后,后面N-1个数,都是按照大小顺序排列的,第一个数自然是最小的,因此排序完成;
代码示意:
public static void Maopao() {
int a[] = { 6, 3, 8, 2, 9, 1 };// 待排序的值
for (int i = 0; i < a.length - 1; i++) {
for (int j = 0; j < a.length - i - 1; j++) {
if (a[j] > a[j + 1]) {
int t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
}