【排序算法】冒泡排序
package test;
import java.util.Random;
/**
* 冒泡排序是这样实现的: 1、从列表的第一个数字到倒数第二个数字,逐个检查: 若某一位上的数字大于他的下一位,则将它与它的下一位交换。
* 2、重复1号步骤,直至再也不能交换。
*
* 冒泡排序的平均时间复杂度与插入排序相同,也是平方级的, 但冒泡排序是原地排序的,也就是说它不需要额外的存储空间。
*
*/
public class MaoPaoPaiXu {
public static void main(String[] args) {
// 定义原数列大小
int size = 10;
// 定义原数列
int[] src = new int[size];
for (int i = 0; i < size; i++) {
src[i] = new Random().nextInt(1000);
}
maoPaoPaiXun(src);
}
private static void maoPaoPaiXun(int[] src) {
boolean sorted = true;
for (int j = 1; j < src.length; j++) {
sorted = true;
for (int i = 0; i < src.length - j; i++) {
if (src[i] > src[i + 1]) {
src[i] = src[i] + src[i + 1];
src[i + 1] = src[i] - src[i + 1];
src[i] = src[i] - src[i + 1];
sorted = false;
}
}
if(sorted) break;
}
}
}