Java基础_冒泡排序

Day_06 冒泡排序

一.冒泡排序
1.定义:由第一个元素开始,比较相邻元素的大小,若大小顺序有误,则对调之后再进行下一个元素的比较。如此扫描过一轮之后就可以确保最后一个元素是位于正确的顺序。
2.联想:观察水中冒泡变化,气泡随着水深压力而改变。气泡在水底时,水压最大,气泡最小。浮上水面时,发现气泡由小逐渐变大。
3.结构:冒泡排序的代码涉及:两次for循环,一次数组元素之间的交换。
4.原理:数组中有n个元素,则最终需要经过n-1轮排序,才能够得到最后的排序结果。第一个for循坏负责外循环(轮数)。数组中有n个元素,则每轮需要经过n-1次排序,才能够将当轮中的最大值筛选到最后。由第二个for循环负责。

二.冒泡排序简单案例

//冒泡排序
import java.util.Arrays;//使用数组工具类前,需要引入。
public class Bubble_sort {
     

	public static void main(String[] args) {
     
		
		int [] a = new int [] {
     43,36,66,99,9,20,32};//定义一个静态数组a,内部存放无顺序的整数元素。
		
		int [] b = Method(a);//定义一个数组b,主要用于接收经过方法处理后的a数组。
		
		System.out.println(Arrays.toString(b));//最终通过数组工具类输出一个升序排列的数组。

	}
	
	public static int[] Method(int[] x) {
     //该方法用于将指定的数组元素顺序排列。
		
		int i,j;//定义i,j变量,用于嵌套for循环。
		
		for(i=0;i<x.length-1;i++)//外循环,n个数需要经过(n-1)趟循环才能得到最终结果。
		{
                             //a数组一共七个元素,数组下标从0开始,因此i的取值应该为0,1,2,3,4,5共计六次循环。
			for(j=0;j<x.length-1;j++)//内循环,n个数每趟需要经过(n-1)次循环才能得到当趟的最终结果。
				                     //a数组一共七个元素,数组下标从0开始,因此每趟需要比较6次才能得到结果。
			{
     
				if(x[j]>x[j+1])//条件判断,如果发现前一个数的值大于后一个数的值,那么就要进行元素之间的交换。
				{
     
					int k;//定义一个中间变量。
					k = x[j];//将大的数赋值给这个中间变量,大的数可以暂时理解为空壳。
					x[j] = x[j+1];//将小的数赋值给大的数,晓得数也可以暂时理解为空壳。原来大的数的壳被填满。
					x[j+1] = k;//将中间变量中包含的原有的大的数赋值给小的数的壳,此时小的数的壳也被填满。
					           //大小数之间完成了变量交换。
				}
			}
		}
		
		return x;//在方法底部返回数组a,与方法参数声明的参数所对应。
		
	}

}

你可能感兴趣的:(学习,java)