08 冒泡排序
冒泡排序
代码
package com.zhan.base04Array;
public class Test08 {
public static void main(String[] args) {
int[] a={1,5,3,8,6};
sort(a);
}
/* 冒泡排序
1.比较数组中相邻的两个因素的大小,如果不相等(看情况),则交换顺序
2.每一次比较,都会产生 最大或者最小 的一个数字 (内循环)
3.下一轮循环可以少一次排序
4. 依次循环,直到结束
*/
public static void sort(int[] a){
boolean flag=false; // 算法的优化
for (int i = 0,k=a.length-1; i < a.length-1; i++,k--) {
// 外循环决定每一次内循环后选出最大或者最小值的轮数 执行 a.length-1 次,下一次循环可少一次排序
for (int j = 0; j <k ; j++) { //内循环决定排序 每一次外循环后,内循环都会减少一次排序
if (a[j]>a[j+1]){ // 升序
int temp;
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
flag=true;
// 如果if语句没有被执行,那么flag==false,则说明原本的顺序就已经排好了,就可以跳出循环,节省资源
}
}
if (flag==false) break;
}
/* 狂神讲的 ,都一样,使得内循环每次排序的次数减1即可
for (int i = 0; i < a.length-1; i++) {
for (int j = 0; j < a.length-1-i; j++) {
}
}
*/
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+" ");
}
System.out.println();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能