冒泡算法
冒泡排序的优点:每进行一趟排序,就会少比较一次,因为每进行一趟排序都会找出一个较大值。如上例:第一轮比较之后,排在最后的一个数一定是最大的一个数,第二轮排序的时候,只需要比较除了最后一个数以外的其他的数,同样也能找出一个最大的数排在参与第二轮比较的数后面,第三轮比较的时候,只需要比较除了最后两个数以外的其他的数,以此类推……也就是说,每进行一轮比较,每一轮少比较一次,一定程度上减少了算法的量。
因此冒泡排序总的时间复杂度为O(n*n)
/*
* 冒泡算法自行运算体会
*/
public class BubbleSort {
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arry= {77,86,45,23,21,31,41,25,26,27};
for(int i = 0;i<arry.length-1;i++) {
for(int j = 0;j<arry.length-1;j++) {
if(arry[j]>arry[j+1]) {
//交换数据
//定义一个临时遍历
int lingshi=arry[j];//将大的数组放到临时变量中
arry[j]=arry[j+1];
arry[j+1]=lingshi;
}
}
}
for(int a=0;a<arry.length;a++){
System.out.print(arry[a]+",");//答案:21,23,25,26,27,31,41,45,77,86,
}
System.out.println();
}
}