冒泡排序的效率比较低,在数据规模较小时可以使用,但是当数据规模比较大的时候考虑其他排序算法。
代码实现如下:
package com.dhasa.test;
/**
*
* @author DL
*
*/
public class BubleSort {
public static void main(String[] args){
/**
* 冒泡排序
*/
System.out.println("---冒泡排序---");
int[] datas = {3,4,2,9,8,5,0};
for(int i=0;i<datas.length-1;i++){
for(int j=0;j<datas.length-i-1;j++){
if(datas[j]>datas[j+1]){
int temp = datas[j];
datas[j] = datas[j+1];
datas[j+1] = temp;
}
}
}
for(int i=0;i<datas.length;i++){
System.out.println(datas[i]);
}
/**
* 改造的冒泡排序
*/
System.out.println("---改进的冒泡排序---");
int[] datass = {8,6,7,0,9,5,4,2,3};
boolean ischange = false;
//length-1比较次数为比长度少一次
for(int i=0;i<datass.length-1;i++){
//每次比较都会去掉末尾已经排好的那些数据
for(int j=0;j<datass.length-1-i;j++){
if(datass[j]>datass[j+1]){
int temp = datass[j];
datass[j] = datass[j+1];
datass[j+1] = temp;
ischange = true;//如果某一趟比较一直没有进行交换,那就说明所有数据已经排好,在下面可以if跳出。
}
if(!ischange){
break;
}
}
}
for(int i=0;i<datass.length;i++){
System.out.println(datass[i]);
}
}
}
比较简单,不多说。