冒泡排序是排序算法中比较简单的一种,它的排序逻辑就是,依次从0位N位进行排序,首先第一次排序获取到0下标的值,然后在根据这个值对数据元素内的全部值进行依次比对,如果达到条件就交换位置继续比对,直到遍历完元素内的全部值为止。
算法图解
- 第一次比较
- 可以看到[8,1,2,9,3,7,4]是初始数据,先从0下标的8对元素内的每个元素依次比较,8没有比较是因为自己本身不需要比较所以省略。
- 第二次比较
- 比对完成0下标的8后,依次对1下标的值重复上面的步骤,为了画图方便这里的图片没有考虑第一次已经排序完的值了。
- 第N此比较
- 依次类推对后面的值进行依次重复步骤直到全部遍历完为止
代码逻辑
/**
* 冒泡排序
*/
private static void maoPao() {
int[] array = new int[]{9, 6, 8, 7, 1, 100, 3, 2, 0, 4};
for (int i = 0; i < array.length; i++) {
for (int j = i + 1; j < array.length; j++) {
int temp = 0;
int iIndex = array[i];
int jIndex = array[j];
if (jIndex < iIndex) {
temp = iIndex;
array[i] = jIndex;
array[j] = temp;
}
}
}
//打印
for (int i : array) {
System.out.println(i);
}
}
输出log
0
1
2
3
4
6
7
8
9
100