原理
每轮相邻两个数据进行比较,如果两者比较不相等,较大的数据和较小的数据交换,较大的数据往后面移动,较小的数据往前移动,移动后再于下一个数据进行比较和交换,一直到最后。
过程
例如:
int[] array = {3,2,0,-1,7};
第一轮:
原数组(第一轮第一次比较) | 第0个比第1个数据大,所以两个交换位置 |
---|---|
3,2,0,-1,7 | 2,3,0,-1,7 |
交换后数组(第一轮叠第一次比较后) | 第1个比第2个数据大所以交换位置 |
2,3,0,-1,7 | 2,0,3,-1,7 |
交换后数组 (第一轮叠第二次比较后) | 第2个比第3个数据大,所以交换位置 |
2,0,3,-1,7 | 2,0,-1,3,7 |
交换后数组 (第一轮叠第三次比较后) | 第3个比第4个数据小,不用交换位置 |
2,0,-1,3,7 | 2,0,-1,3,7 |
第二轮:
第一轮比较后第一次比较 | 第0个比第1个数据大,所以两个交换位置 |
---|---|
2,0,-1,3,7 | 0,2,-1,3,7 |
2、交换后数组 | 第1个比第2个数据大所以交换位置 |
0,2,-1,3,7 | 0,-1&#x |