鱼C论坛

 找回密码
 立即注册
查看: 3079|回复: 6

[学习笔记] 浅谈冒泡排序

[复制链接]
发表于 2021-3-16 20:44:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
        排序方法是一种重要的、基本的算法。排序的方法很多,冒泡排序法就是其中的一种。冒泡排序法的基本思路是:每次将相邻的两个数比较,将较小的调到前面。若有六个数,9,8,5,4,2,0,第一次先将最前面的两个数8和9对调(见图一)。第二次将第2和第3个数(9和5)对调,如此共进行5次,得到8-5-4-2-0-9的顺序,可以看到最大的数9已经“沉底”,成为最下面一个数,而小的数“上升”。最小的数0已经向上浮起一个位置。经过第一趟(共5次比较与交换)后,已得到最大的数9。
        然后进行第二趟比较,对余下的前面5个数(8,5,4,2,0)进行新一轮的比较,以便使次大的数“沉底”。按以上方法进行第二趟比较,。经过这一趟4次比较与交换,得到次大的数8.。
        按此规律进行下去,可以推知对6个数要比较5趟,才能使6个数按大小顺序排列。在第1趟中要进行两个数之间的比较共5次,在第二趟过过程中比较4次……第5趟只需比较一次。
        如果有n个数,则要进行n-1趟比较。在第一趟中要进行n-1次两两比较,在第j趟比较中要进行n-j次两两比较。
冒泡排序.png
        例:
#include <stdio.h>
int main()
{
int a[10]
int i,j,t;
printf("输入十个数:\n");
for(i-0;i<10;i++)
        scanf("%d",&a[i]);
printf("\n")
for(j=0;j<9;j++)
        for(i=0;i<9-j;i++)
                if(a[i]>a[i+1])
                {
                        t=a[i];a[i]=a[i+1];a[i+1]=t;};
                }
printf("排序后为:\n“);
for(i=0;i<10;i++)
        printf("%d",a[i]);
printf("\n")
return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-3-16 20:45:58 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-16 21:18:40 | 显示全部楼层

回帖奖励 +2 鱼币

想问下大佬,我学python要学这种算法么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-16 21:35:19 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-16 22:26:04 | 显示全部楼层

回帖奖励 +2 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-17 09:17:11 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-3-17 09:21:15 | 显示全部楼层
柿子饼同学 发表于 2021-3-16 21:18
想问下大佬,我学python要学这种算法么

算法就像是乐谱一样,不局限于任何乐器,同样算法也是不就是解决问题的方法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-9 22:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表