冒泡排序(BubbleSort):
走访需要排序的数列,一次次比较两个元素,如果元素的顺序错误就调换过来,重复地进行直到所有相邻元素间无需交换,此时说明该数列已经排序完成。此方法犹如水塘中的气泡浮到水面,形象的成为“冒泡”。
- 算法描述:
- 相邻元素间比较,如果前一个比后一个大,交换两元素的位置;
- 每一对相邻元素之间做同样的工作,从开始的第一对到结尾的一对,这样最后的元素应该是最大的;
- 针对所有元素重复以上步骤,除了最后一个最大的;
- 动图演示
- 代码实现:
import java.util.Arrays;
/**
* 冒泡排序法
* TODO
* @title
* @author JayLee
* @date 2019-09-04 14:16
*/
public class BubbleSort {
public static void main(String[] args) {
// 需要排序的测试数组
int[] test = {32,54,2,5,6,7,56,52,24};
// 执行静态方法后返回的int类型的数组
int[] result = bubbleSort(test);
// 数组的三种打印方式
System.out.println("普通for循环输出:");
for(int i = 0; i<result.length; i++) {
System.out.print(result[i]+" ");
}
System.out.println("\n"+"增强for循环输出:");
for (int i : result) {
System.out.print(i+" ");
}
System.out.println("\n"+"Array类中的toString()输出:");
System.out.println(Arrays.toString(result));
}
// 冒泡排序核心代码
public static int[] bubbleSort(int[] array) {
if(array.length==0)
return array;
for(int i = 0; i<array.length; i++ ) {
for(int j = 0; j<array.length-i-1; j++) {
if(array[j+1] < array[j]) {
int num = array[j+1];
array[j+1] = array[j];
array[j] = num;
}
}
}
return array;
}
}