简介
- 最简单排序算法之一
- 此算法具有二次方程增长阶,因此仅适合排序小列表
- 通过列表重复扫描,比较相邻元素和错误顺序交互,此算法会有作用
排序算法步骤
- 设置通道(圈数)= 1
- 重复步骤3,区分0到n-1通道中的j.
- 如果索引j处的元素大于索引j+1的元素,则交换两个元素。
- 按1递增通道,圈数加1
- 如果通道<=n-1, 则转到步骤2。
代码实现
public class BubbleSort {
/**
* 排序
* @param arr
* @return
*/
public static int[] sort(int[] arr){
int n = arr.length;
//从0开始,也就是数组下标循环
for (int i = 0; i < n -1; i++){
for (int j = 0; j < n - 1 - i; j++){
//比较相近的两个数值,大的放后面
if(arr[j] > arr[j + 1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
public static void main(String[] args) {
int[] arr = {5, 2, 6, 7, 1};
int[] sortArr = sort(arr);
for (int i : sortArr){
System.out.print(" " + i); //输出结果: 1 2 5 6 7
}
}
}