冒泡法(基本原理和方法)(c语言篇)

article/2025/9/27 13:37:13

学习冒泡排序法

一.引入数组概念

二.掌握循环嵌套

三.思考排序方法

四.编译程序

五.调试运用(检错优化)

一.
*数组是一组具有相同数据类型的数据的有序集合。
*数组中的每一个元素都属于同一个数据类型。
*一个数组名和下标来唯一确定数组中的元素。
二.
循环语句的类型有多种例如:do…while型,while型和for型的,而这几种类型的循环语句进行结合即可得嵌套类型。
三.
冒泡题目为:已知一组数,要求对他们按由小到大的顺序排列。
冒泡基本思想:每次将相邻两个数进行比较,将较小的数调到前面。

在这里插入图片描述

结合上图思考可得:6个数要比较5趟,要采用双重循环(外层循环控制比较趟次,内层循环确定第n趟中两两比较的次数。)

四.
下面我来对大家进行一次编译

#include<stdio.h> 
int main()
{int i,j,t;
int a[5]={45,5,0,5,7};
printf("input %D numbers:\n");
for(i=0;i<5;i++)
printf("%d\n",a[i]);
for(j=0;j<4;j++)
for(i=0;i<4-j;i++)
if(a[i]>a[i+1])
{t=a[i];a[i]=a[i+1];a[i+1]=t;}
printf("the sorted numbers:\n");
for(i=0;i<5;i++)
printf("%d\n",a[i]);
printf("\n");			} 

其中进行了两次循环.
这里解释一下第一个for语句:它是将原数据输出(每行输出一个),这样可以和整理好的数据进行更清晰的对比。
上面的程序是已经确定好了的五个变量,下面我们来对其进行一些升级和改良。
改良1:
试着将其该为让使用者自己输入n个数,然后对这n个数进行排序
改良2:
可以根据使用输入的个数来对其进行排序(对输入数据的个数没有限制)
这里我们就需要使用 宏定义函数 和输出函数了(输出函数有很多种,我这里使用的是是 scanf语句。)


改良后的程序如下:


#include<stdio.h> 
#define N 10 
int main()
{
int a[N],i,j,t;
printf("input %D numbers:\n",N);
for(i=0;i<N;i++)
scanf("%d",&a[i]);
printf("\n");
for(j=0;j<N;j++)
for(i=0;i<N-j;i++)
if(a[i]>a[i+1])
{
t=a[i];a[i]=a[i+1];a[i+1]=t;
}
printf("the sorted numbers:\n");
for(i=0;i<N;i++)
printf("%d\n",a[i]);
printf("\n");			} 

五.
当程序编译好后对程序进行调试,发现错误即使纠错,即使这是一个简单的小型程序,我们程序员也应该时刻保持严谨认真的态度。调试无误后,可以试着对其语句和界面进行一些优化。
例如
5.1
将界面和数组的颜色进行一些改良,这样可以让使用这对数据的观察更加容易,增加程序对用户的友好性(尽管这是一个简单的程序,我们也应该从下做起,将来的软件开发更是需要如此,才能增加用户的数量,和使用时间!)
5.2
可以试着将程序输入和输出的数据排版进行一些改动(我编的这个是上面一列为原数据,下面一列为排序好的,数据多的话观察起来较为困难)可以试着将其该为上面一排为原数据,空几行后下面一排为排好的数据;或将其调整为上面一列为原数据,空几行后右面是排好的原数据。这会让使用者拥有最佳的使用效果。
第五点在中的人性化设置极为重要,对以后的从事软件开发的行业的人有着极大的影响!!!
制作不易,未经许可不得转载


http://chatgpt.dhexx.cn/article/SN72iej9.shtml

相关文章

C语言排序之冒泡法(起泡法)

C语言排序之冒泡法&#xff08;起泡法&#xff09;C语言排序之冒泡法&#xff08;起泡法&#xff09; 冒泡的本质还是两两比较&#xff0c;第一次把最大或最小的选出来&#xff0c;第二次把老二选出来&#xff0c;这样的话就会少比一次&#xff0c;就这样循环下去就行啦&#x…

排序算法--冒泡法

冒泡法 原理是遍历文件&#xff0c;如果相邻的两个元素大小不符合预期&#xff0c;则进行交换&#xff0c;重复直到有序为止。 第一遍时&#xff0c;从左到右比较相邻两个元素&#xff0c;当两个元素中右边的元素较小时&#xff0c;将其与左边的元素进行交换。直到最终将最大…

排序算法之冒泡法(起泡法)

起泡法的理解及基本思路&#xff1a; 通俗理解就是将小的数浮上来&#xff0c;大的则沉底&#xff08;小浮大沉&#xff09;。 基本思路 每次将相邻两个数比较&#xff0c;将小的调到前面。如下图所示&#xff1a; 显而易知&#xff0c;共有六个数&#xff0c;在第一趟排序时…

冒泡排序法

冒泡排序法 冒泡排序法原理示意图 public static void ArraySortTest() {int[] ages {21,27,31,19,50,32,16,25};System.out.println(Arrays.toString(ages));//控制比较轮数for(int i1;i<ages.length;i) {//每轮比较多少for(int j0;j<ages.length-i;j) {if(ages[j]&…

冒泡法的讲解及使用

冒泡法是一种比较数组中数据大小的方法&#xff0c;基本思路是&#xff1a;每次将相邻两个数相比较&#xff0c;将小的调到前面。 例如&#xff1a;若有6个数:9,8,5,4,2,0 &#xff1b;先由第一个数与第二个数比较&#xff0c;小的数在前&#xff1b;再由第二个数与第三个数比…

冒泡法详解

目录 什么是冒泡法冒泡法思路代码的实现 什么是冒泡法 冒泡排序&#xff08;Bubble Sort&#xff09;&#xff0c;是一种计算机科学领域的较简单的排序算法。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端&#xff08;升序或降序排列&#xff09;&…

冒泡排序法(超详细)

冒泡排序法 文章目录 冒泡法的基本思路思路总结 程序实现 下面我们一起来看看排序中的冒泡排序法。 &#x1f4a1;[例]有5个数字&#xff0c;要求对它们按由小到大的顺序排列。 这种问题称为数的排序(sort)。排序的规律有两种:一种是“升序”&#xff0c;从小到大;另一种是“降…

【C语言】冒泡法排序

哈喽&#xff01; 大家好&#xff0c;我们今天结束C语言期末考试啦 不知道各位同学考完了没呢&#xff1f; 由于在考试前依然有很多同学不清楚冒泡法怎么用 这期我专门整理了一下冒泡法的用法&#xff0c; 供大家参考哦&#xff01; 我们先来看一下源代码&#xff1a; /…

2020年程序员日,是个特别的日子

大家调侃2020年是程序员的本命年&#xff0c;因为今年刚好碰上了2020-1024996的公式&#xff0c;发图纪念下。

「1024 程序员节」各大公司和程序员们都是怎么过的?你都做了哪些计划或安排?

鲁迅曾经说过&#xff1a;“这个世界上本没有节日&#xff0c;网友BB的多了&#xff0c;什么节日都可以有。” 上面就当笔者开个玩笑&#xff0c;但互联网时代&#xff0c;人造节日真的是越来越多了&#xff01; 当然&#xff0c;也被赋予了特殊的含义。 比如&#xff1a; 5…

1024 | 第一波程序员日福利

程序员日马上就要到了&#xff0c;熟悉老表(就是X先生本人哈)的读者肯定知道&#xff0c;福利特别多&#xff0c;程序员日这么关键的日子&#xff0c;怎么能不给大家送点福利呢&#xff1f;不&#xff0c;一点点&#xff0c;太少了&#xff0c;来波大的&#xff0c; 针对1024程…

程序员的假期

暑假这么长&#xff0c;想想是不是就觉得非常爽了呢&#xff1f; 虽然&#xff0c;假期之前 内心估计都这样祈祷过⇊ 但身为一名&#xff08;合格的&#xff09;程序员 假期真的离得开代码吗&#xff1f; 时不时得看一下公司的企业群&#xff0c; 时不时处理一下紧急的事情…

2022,了不起的程序员日历来啦!

日历一天天地翻过&#xff0c;转眼间 2021 年还剩下一个半月了。这一年&#xff0c;小伙伴们有怎样的收获&#xff1f;年初的读书计划、健身计划都落实的怎么样啦&#xff01;曾经信心满满立下的众多 Flag&#xff0c;如今都实现了没&#xff1f; 来说一个好消息&#xff0c;20…

1024 程序员日

1024程序猿节日快乐

1024程序员节,今天你加班了吗,关于程序员的趣事都有哪些?

10 月 24 日 本是个寻常的日子 但是在新时代的中国 却赋予了它新的意义 正是广大的程序员们 用一行行代码、一个个函数 支撑起中国互联网的快速发展 所以今天 我们就来看看 有哪些适合程序员的高逼格礼物 以下内容来源 知乎问答&#xff1a; 有哪些适合放在程序员办公桌上的…

每日言论:『程序员的工作方式』

公众号关注 「奇妙的 Linux 世界」 设为「星标」&#xff0c;每天带你玩转 Linux &#xff01; 最近&#xff0c;我们建立了一个技术交流微信群。目前群里已加入了不少行业内的大神&#xff0c;有兴趣的同学可以加入和我们一起交流技术&#xff0c;在 「奇妙的 Linux 世界」 公…

程序员的一天是怎样过的?

作者&#xff1a;互联网早班车 程序员的一天是怎样过的&#xff1f; 01 阿里系程序员一天的工作 1、早上8点到公司&#xff0c;看15分钟微博&#xff0c;做一天的计划。 2、10点开个晨会&#xff0c;然后工作到12点。 3、中午出去吃个饭聊天&#xff0c;1点半回来。 4、…

2022 年程序员日记

01 月 01 日 做程序员好多年了呢&#xff0c; 想换行。 回车键却坏了。 01 月 10 日 又发了购书卡&#xff0c; 我觉得我需要买《颈椎病康复指南》了&#xff0c; 毕竟&#xff0c; 《沉默的愤怒》刚读完&#xff0c; 而那本《活着》还没到阅读时间。 01 月 11 日 今天又听…

祝天下所有程序员们,天天2020-1024快乐,程序员狂欢日燥起来!

hello 程序员&#xff01;hello world&#xff01; 1GB1024M&#xff0c;1M1024K&#xff0c;1KB1024B “1024”被认为是一个只有程序员才懂的数字 在这个特殊的日子里 有这么一群人 他们工作起来没日没夜 加最忙的班&#xff0c;熬最深的夜 从茂密黑发&#xff0c;到深…

程序员的一天

时间&#xff1a;2019/11/1 地点&#xff1a;北京海淀 背景&#xff1a;职场萌新。 7:00 闹钟响起&#xff0c;拿起手机刷微博看看时事新闻&#xff0c;又爆出来什么猛料了。譬如娱乐圈内谁谁结婚啦&#xff0c;谁谁生娃啦&#xff0c;热搜只是话题&#xff0c;更有趣的在评论中…