算法系列-排序算法-冒泡排序(JAVA版)
简介
记录自己的学习的算法
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。这个算法的名字由来是因为每趟比较将当前数列未排序部分的最大的元素“沉”到数列末端,而小的元素会经由交换慢慢“浮”到数列的顶端
排序算法JAVA实现
代码如下
int[] doSort(int[] array) {
//数组长度
int arraySize = array.length;
for (int i = 0; i < arraySize; i++) {
//冒泡排序每次比较如果没有发生排序,说明已经排序好了,可以直接跳过
boolean isChange = false;
//每冒一次泡,对比次数就要减少一次
for (int j = 0; j < arraySize - 1 - i; j++) {
//打印一下过程与算法无关
System.out.println("冒泡前 " + printFun(array, j, j + 1));
//交换
if (array[j] > array[j + 1]) {
int tmp = array[j];
array[j] = array[j + 1];
array[j + 1] = tmp;
isChange = true;
//打印一下过程与算法无关
System.out.println("冒泡后 " + printFun(array, j, j + 1));
}
}
if (!isChange) {
break;
}
}
return array;
}
输出结果
未排序 [9, 6, 0, 2, 3]
冒泡前 [9] [6] 0 2 3
冒泡后 [6] [9] 0 2 3
冒泡前 6 [9] [0] 2 3
冒泡后 6 [0] [9] 2 3
冒泡前 6 0 [9] [2] 3
冒泡后 6 0 [2] [9] 3
冒泡前 6 0 2 [9] [3]
冒泡后 6 0 2 [3] [9]
冒泡前 [6] [0] 2 3 9
冒泡后 [0] [6] 2 3 9
冒泡前 0 [6] [2] 3 9
冒泡后 0 [2] [6] 3 9
冒泡前 0 2 [6] [3] 9
冒泡后 0 2 [3] [6] 9
冒泡前 [0] [2] 3 6 9
冒泡前 0 [2] [3] 6 9
已排序 [0, 2, 3, 6, 9]
源码地址
https://github.com/RockeyCui/learn-normal
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 rockeycui@163.com
文章标题:算法系列-排序算法-冒泡排序(JAVA版)
文章字数:447
本文作者:崔石磊(RockeyCui)
发布时间:2018-08-30, 20:00:00
原始链接:https://cuishilei.com/算法系列-排序算法-冒泡排序-JAVA.html版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。