排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法对算法本身的速度要求很高。而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。冒泡法排序是最原始,也是众所周知的最慢的算法了。它的名字的由来因为它的工作看来象是冒泡。
package rainbow.test.sort;
public class SortUtil {
/**
* 起泡排序算法,属于稳定排序,算法复杂度为O(N*N)
* @param data 待排序的数组
* @return 排序后的数组
*/
public static int[] bubbleSort(int []data){
int temp;
for(int i= 0;i< data.length -1 ;i++){
for(int j = i+1;j < data.length;j++){
if(data[i]>data[j]){
temp = data[i];
data[i]=data[j];
data[j]= temp;
}
}
}
return data;
}
/**
* for demo
* @param args
*/
public static void main(String[] args) {
int []data =new int[]{3,2,5,7,7,78,56};
bubbleSort(data);
for(int a : data){
System.out.println(a);
}
}
}