1、特点:
1、空间复杂度低,时间复杂度高
2、升序排序中每一轮比较会把最大的数下沉到最低,所以相互比较的次数每一轮会比前一轮少一次。
3、是一种稳定的排序算法
2、代码分析:
/*
冒泡排序
*/
public class My7_14_4{
public static void main (String [] args){
int [] arr = {8,12,1,5,2,19,55,78,222,111,89};
for(int i = 0;i<arr.length-1;i++){
for(int j =0; j<arr.length-1-i; j++){
if(arr[j]>arr[j+1]){
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for(int k = 0;k<arr.length;k++){
System.out.print(arr[k]+" ");
}
}
}
假设有一数组为 {8,12,1,5,2,19},一共六个元素,将其按从小到大升序排列,过程如下:
“*”星号表示比较次数,两两比较之后交换位置,一轮比较之后去掉最后一个最大的
第一轮比较(相邻元素两两比较) :8*1*5*2*12*19
第二轮比较(相邻元素两两比较) :1*5*2*