JAVA——数组排序之冒泡排序

一、思路
冒泡法排序的思路:
第一步:从第一位开始,把相邻两位进行比较
如果发现前面的比后面的大,就把大的数据交换在后面,循环比较完毕后,最后一位就是最大的
第二步: 再来一次,只不过不用比较最后一位
以此类推,由此发现是个循环。
二、具体代码

package demo;

public class Demo6 {
     

	public static void main(String[] args) {
     
		 int a [] = new int[]{
     18,62,68,82,65,9};
	        //排序前,先把内容打印出来
	        for (int i = 0; i < a.length; i++) {
     
	            System.out.print(a[i] + " ");
	        }
	        System.out.println(" ");
	        //冒泡法排序
	      
	        //第一步:从第一位开始,把相邻两位进行比较
	        //如果发现前面的比后面的大,就把大的数据交换在后面
	          
	        for (int i = 0; i < a.length-1; i++) {
     
	            if(a[i]>a[i+1]){
       
	                int temp = a[i];
	                a[i] = a[i+1];
	                a[i+1] = temp;
	            }
	        }
	        //把内容打印出来
	        //可以发现,最大的到了最后面
	        for (int i = 0; i < a.length; i++) {
     
	            System.out.print(a[i] + " ");
	        }
	        System.out.println(" ");
	          
	        //第二步: 再来一次,只不过不用比较最后一位
	        for (int i = 0; i < a.length-2; i++) {
     
	            if(a[i]>a[i+1]){
       
	                int temp = a[i];
	                a[i] = a[i+1];
	                a[i+1] = temp;
	            }
	        }
	        //把内容打印出来
	        //可以发现,倒数第二大的到了倒数第二个位置
	        for (int i = 0; i < a.length; i++) {
     
	            System.out.print(a[i] + " ");
	        }
	        System.out.println(" ");
	        
	        //可以发现一个规律
	        //后边界在收缩
	        //所以可以在外面套一层循环
	          
	        for (int j = 0; j < a.length; j++) {
     
	            for (int i = 0; i < a.length-j-1; i++) {
     
	                if(a[i]>a[i+1]){
       
	                    int temp = a[i];
	                    a[i] = a[i+1];
	                    a[i+1] = temp;
	                }
	            }
	        }
	          
	        //把内容打印出来
	        for (int i = 0; i < a.length; i++) {
     
	            System.out.print(a[i] + " ");
	        }
	        System.out.println(" ");   
	}
}

三、截图
JAVA——数组排序之冒泡排序_第1张图片

你可能感兴趣的:(java)