冒泡排序及优化

本文详细介绍了冒泡排序算法及其优化方法,通过设立旗帜变量来判断是否需要提前终止排序过程,避免了不必要的比较,提高了排序效率。代码示例清晰展示了排序过程,并提供了每一步排序后的数组状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1 package cn.zhang.Array;
 2 
 3 import java.util.Arrays;
 4 
 5 /**
 6  * 冒泡排序及优化
 7  * @author 张涛
 8  *
 9  */
10 public class TestBubbleSort {
11     public static void main(String[] args) {
12         int[] a = {3,1,6,2,9,0,7,4,5,8};
13         int temp= 0;
14         
15         //冒泡排序
16         for(int i=0; i<a.length-1; i++) {//n个数只需要排序n-1次
17             
18             //优化:从大循环的角度设立一个旗帜,用于判断是否执行力if语句,要一整个大循环都未执行if语句,才能结束
19             //     不能从小循环角度,可能小循环某次就没有执行if语句
20             boolean flag = true;
21             
22             for(int j=0; j<a.length-1-i; j++) {//把已经排序好的i次减掉
23                 
24                 if(a[j]>a[j+1]) {//从小到大进行排序
25                     temp = a[j];
26                     a[j] = a[j+1];
27                     a[j+1] = temp;
28                     
29                     flag = false;
30                 }
31                 System.out.println(Arrays.toString(a));//每次排序输出看一哈
32             }
33             if(flag)
34                 return;
35             System.out.println("#####");
36         }    
37     }
38 }

 

转载于:https://www.cnblogs.com/zhangqiling/p/11376145.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值