java 冒泡排序
之前学过冒泡排序,但没仔细想过,也没怎么练习。
如果突然让我写个冒泡排序,肯定是手忙脚乱,要不断“试错”试出来一个正确答案。
今天分析、总结一下冒泡排序的编程思路和写法。
冒泡排序具体的思想就不列举了,我只列出由想到写的过程,整理出一份便于理解,便于记忆的模板,以后用到了可以来复习。
for for if 交换,就这么几个流程,关键就是两个循环控制变量的取值范围
class BubbleSorting { public static void main(String[] args) { int[] num = {24,13,34,688,35,877,64,8,346,-21,59,-31}; System.out.println("原数组如下:"); for (int i = 0; i < num.length; i++) { System.out.print(num[i] + " "); } System.out.println(); //j代表数组下标 //第1轮,j从0开始,一直到len-2,询问num[j]是否大于num[j+1],如果大于,交换 //最终,len-2和len-1比较大小,得到了最大的数,并放到了len-1的位置 //第2轮,j从0开始,一直到len-3,询问num[j]是否大于num[j+1],如果大于,交换 //最终,len-3和len-2比较大小,得到了最大的数,并放到了len-2的位置 //第i轮,j从0开始,一直到len-1-i,询问num[j]是否大于num[j+1],如果大于,交换 //最终,len-1-i和len-i比较大小,得到了最大的数,并放到了len-i的位置 //一共有len-1轮,i从1到len-1 for (int i = 1;i <= num.length - 1; i++) { //总共len-1轮,1 <= i <= len-1 for (int j = 0; j <= num.length - 1 - i; j++) { //j是两两比较的前者,j的范围从0开始,到下标为len-2的元素结束,并且每一轮都会少比较一个, 0 <= j <= len-2-(i-1) if (num[j] > num[j + 1]) { int tmp = num[j]; num[j] = num[j + 1]; num[j + 1] = tmp; } } } //总结,遇到麻烦的需求,不要直接开始动手,先找到规律。 //一轮一轮地整理,什么变什么不变,找到变量,进行替换,最终总结出规律 System.out.println("从小到大排序如下:"); for (int i = 0; i < num.length; i++) { System.out.print(num[i] + " "); } System.out.println(); //如果改成从大到小排序,分析如下 //i代表轮数,不变 //j代表两两比较的前者,比较的过程也不变,j不变 //需要修改的是if的条件判断,上面的代码表示的是向更大的地方“冒泡”,现在要改成向更小的地方“冒泡” //把if (num[j] > num[j + 1]) 修改成 if (num[j] < num[j + 1]) 即可 for (int i = 1;i <= num.length - 1; i++) { //总共len-1轮,1 <= i <= len-1 for (int j = 0; j <= num.length - 1 - i; j++) { //j是两两比较的前者,j的范围从0开始,到下标为len-2的元素结束,并且每一轮都会少比较一个, 0 <= j <= len-2-(i-1) if (num[j] < num[j + 1]) { int tmp = num[j]; num[j] = num[j + 1]; num[j + 1] = tmp; } } } System.out.println("从大到小排序如下:"); for (int i = 0; i < num.length; i++) { System.out.print(num[i] + " "); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!