java冒泡排序算法深度讲解
原创
©著作权归作者所有:来自51CTO博客作者wx62e9cee37942d的原创作品,请联系作者获取转载授权,否则将追究法律责任
1.首先我们先测试以下,随机数目为10个,看看冒泡排序所用时间。
public class BubbleSort {
/**
* 创建日期:2017-3-24下午7:55:39 作者:lvguanghui
*/
public static void main(String[] args) {
/**
* 冒泡排序 思路:我们把不同的数字放到一个数组中 先比较第一个数字和后面的数字的大小,如果第一个数字大于后面的数字
* 那么两者之间进行交换位置,否则,不交换位置,继续比较第二个数字 和后面的数字之间的大小·······,直到比较完为止。
*/
int num=10;//随机数目
int[] a = new int[num];
for (int i = 0; i < num; i++) {
a[i] = (int) (Math.random() * 1000);
}
System.out.print("排序之前数组:");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
long start_time = System.currentTimeMillis();
System.out.println("当前系统毫秒:" + start_time);
// 比较的总次数;
for (int j = 0; j < a.length; j++) {
// 每次比较的次数
for (int i = 0; i < a.length - 1 - j; i++) {
int temp;
if (a[i] > a[i + 1]) {
temp = a[i + 1];
a[i + 1] = a[i];
a[i] = temp;
}
}
}
long end_time = System.currentTimeMillis();
System.out.println("当前系统毫秒:" + end_time);
System.out.println("冒泡排序所用时间:" + (end_time - start_time));
System.out.print("排序之后数组:" + " ");
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
}
}
2.如图所示
3.我们修改随机数目,修改为10000