冒泡法也叫下沉法,是数组里一个基本的排序算法,小的排前面大的往下,往后挪。这种算法采用的是嵌套循环对整个数组遍历,每次遍历都比较相邻的2个element,如果这对elements以升序(或者是值相等)那么保持它们的位置不变,else他们以降序排列,则交换它们的位置。
package test;
/**
*
* @author dyin
*/
public class BubbleTest {
public static void Bubble(int[] arrays){
for(int i=0;i<arrays.length-1;i++){
for(int j=0;j<arrays.length-i-1;j++){
if(arrays[j] > arrays[j+1]){
int temp = arrays[j];
arrays[j] = arrays[j+1];
arrays[j+1] = temp;
}
}
//transfer another method
printer(arrays,i+1);
}
}
public static void printer(int[] array,int times){
System.out.print("第"+times+"次排序结果为:");
for(int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
// System.out.print(array[times]);
System.out.println();
}
public static void main(String[] args){
int[] arry = new int[]{4,6,5,3,9,1};
Bubble(arry);
}
}
打印结果:
----------------------------------------------------
第1次排序结果为:4 5 3 6 1 9
第2次排序结果为:4 3 5 1 6 9
第3次排序结果为:3 4 1 5 6 9
第4次排序结果为:3 1 4 5 6 9
第5次排序结果为:1 3 4 5 6 9
此种算法的时间复杂度为O(n^2)