Java基础-算法-冒泡算法

110 阅读1分钟

冒泡算法

冒泡排序的优点:每进行一趟排序,就会少比较一次,因为每进行一趟排序都会找出一个较大值。如上例:第一轮比较之后,排在最后的一个数一定是最大的一个数,第二轮排序的时候,只需要比较除了最后一个数以外的其他的数,同样也能找出一个最大的数排在参与第二轮比较的数后面,第三轮比较的时候,只需要比较除了最后两个数以外的其他的数,以此类推……也就是说,每进行一轮比较,每一轮少比较一次,一定程度上减少了算法的量。

因此冒泡排序总的时间复杂度为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();
			 }
	 
	}