冒泡排序可以从小到大或者从大到小的排序。以从小到大排序为例,讲究的是把当前下标和下标+1的两个数进行比较,如果大于则交换位置,然后下标+1,挨个往后面的下标一次次比较,怎么实现呢?请看下面代码和图解
public void mppx(int arr[]) { //冒泡排序方法
int len = arr.length; //数组长度
int temp = 0; //临时变量(作用于交换时)
for (int i=0; i<len-1; i++) { //外层循环中,循环次数应为数组长度len-1次
for (int j=0; j<len-1-i; j++) { //随着排序结果慢慢出现,比较的下标每轮-1
if (arr[j] > arr[j+1]) { //如果第0个下标 大于 第1个下标那么交换数字,很明显是一个从小到大的排序
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}