Java实现简单的冒泡排序
冒泡排序
它适合数据规模很小的时候,而且它的效率也比较低,但是作为入门的排序算法,还是值得学习的。
什么是冒泡排序?
顾名思义,像水里吐的泡泡一样,因为水越深压强越大,而泡泡的在水里的由深变浅。所以,同样的气体体积,第一个出来的泡泡比第二个出来的要大。如下图所示
冒泡排序的Java代码
public class Bubble {
/**
* 冒泡排序算法方法,intArrays为传入的数组
*/
public static void sort(int[] intArrays){
int length=intArrays.length-1;
for(int i=0;i<length;i++){
//每一次循环找出最大值
for(int j=0;j<length-i;j++){
if(intArrays[j]>intArrays[j+1]){
//如果前面的数比后面的数大就交换它们的位置
NumberUtils.exchange(intArrays,j,j+1);
}
}
}
}
/**
* 执行入口,intArrays:待排序的数组,displaySort:是否显示排序前和排序后的内容。
*/
public static void run(int intArrays[],boolean displaySort){
//克隆一份数组
int arrays[]= intArrays.clone();
// 判断是否需要显示排序前的内容
if(displaySort){
NumberUtils.display(arrays,1);
}
// 记录开始时间
long startTime=System.currentTimeMillis();
sort(arrays);
// 记录结束时间
long endTime=System.currentTimeMillis();
// 判断是否需要显示排序前的内容
if(displaySort){
NumberUtils.display(arrays,2);
}
System.out.println("冒泡排序用时:"+(endTime-startTime)+"毫秒");
}
/**
* 测试排序用的主方法
*/
public static void main(String[] args){
//数组长度
int length=30000;
//最大值
int max =100000000;
//是否打印排序后的内容
boolean display=false;
//随机获取的排序数组
int intArrays[]= NumberUtils.getRandomArs(length,max);
Bubble.run(intArrays,display);
}
}
运行main()方法,终端输出
排序前:98692885 78734154 7745406 97043438 68720323 42819146 8210211 27611617 78857452 ......51820813 58031010 85028575 47959133 49404805 84102205 12103474 46209285 79427548 12704778
排序后:3621 6462 7920 11753 15464 17636 19331 23490 31389 ......99954272 99955130 99969666 99970755 99
还没有评论,来说两句吧...