冒泡法排序


冒泡排序:

 

=================================================================================== 

案例:

 

 分析:

 

 第一轮排序的代码:

复制代码
 1 #include <stdio.h>
 2 
 3 void main(){
 4     int arr[] = {3,9,-1,10,-2};
 5     int temp = 0;
 6     for (int i = 0; i < 4; i++){
 7         if (arr[i]>arr[i+1]){
 8             temp = arr[i];
 9             arr[i] = arr[i+1];
10             arr[i+1] = temp;
11         }
12     }
13     
14 }
复制代码

第二轮排序的代码只需要再加一个相同的for循环,更改i<4中的值,把4改为3即可,如此重复步骤直到i<1即可完成要求。

也可以嵌套一个循环,一部到位,如下(看不懂先理解上面的核心【即只有数值4在变,根据这一点就可以优化代码】):

复制代码
 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 void main(){
 5     int arr[] = {3,9,-1,10,-2};
 6     int temp = 0;   //临时变量
 7     int len = sizeof(arr)/sizeof(int) -1;   //数组长度
 8     for(int j = 0; j<len ;j++){ //外部循环,决定进行几轮排序
 9 
10         for (int i = 0; i < len-j; i++){    //内部循环,排序核心代码
11             
12             if (arr[i]>arr[i+1]){
13                 temp = arr[i];
14                 arr[i] = arr[i+1];
15                 arr[i+1] = temp;
16             }
17         }
18     }
19     for (int i = 0; i < len+1; i++){
20         printf("%d,", arr[i]);
21     }
22 }
复制代码

如果要从大到小,只需要修改if语句块里面的>改为<即可。

甚至你可以打包成一个函数随时调用!

复制代码
 1 #include <stdio.h>
 2 #include <string.h>
 3 
 4 void bubble(int arr[], int len){
 5     int temp = 0;   //临时变量
 6     for(int j = 0; j<len ;j++){ //外部循环,决定进行几轮排序
 7 
 8         for (int i = 0; i < len-j; i++){    //内部循环,排序核心代码
 9             
10             if (arr[i]>arr[i+1]){
11                 temp = arr[i];
12                 arr[i] = arr[i+1];
13                 arr[i+1] = temp;
14             }
15         }
16     }
17     for (int i = 0; i < len+1; i++){
18         printf("%d,", arr[i]);
19     }
20 }
21 
22 void main(){
23     int arr1[] = {3,9,-1,10,-2};
24     int len = sizeof(arr1)/sizeof(int) -1;   //数组长度
25     bubble(arr1, len);
26 }
复制代码

 

posted @   Morning枫  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
点击右上角即可分享
微信分享提示