冒泡排序类似于九九乘法表和交换两个变量的值的组合体,也是一种简单的算法,
通俗的说就是将相邻两个元素进行比较,将较大的放到后面,较小的放到前面。
实现思路如下图
重复以上操作,便可以得到从右往左最大值、第二大值……直至最小值,也就完成了排序
//将最大的数排到最后的位置
for(int i = 0; i < arr.length-1; i++){
if(arr[i]>=arr[i+1]){
int num = arr[i+1];//将下标为i的元素赋给中间变量
arr[i+1] = arr[i];//将较大的元素换到后面
arr[i] = num;//将较小的元素换到前面
}
}
//将第二大的数排在倒数第二的位置
for(int i = 0; i < arr.length-1; i++){
if(arr[i]>=arr[i+1]){
int num = arr[i+1];//将下标为i的元素赋给中间变量
arr[i+1] = arr[i];//将较大的元素换到后面
arr[i] = num;//将较小的元素换到前面
}
}
……
使用for循环嵌套减少代码量
//使用for嵌套循环将元素全部排序
for(int j = 0; j < arr.length-1; j++) {
for(int i = 0; i < arr.length-1-j; i++) {
//两个相邻的元素进行比较
if(arr[i] >= arr[i+1]) {
int num = arr[i+1];
arr[i+1] = arr[i];
arr[i] = num;
}
}
}