资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

c语言冒泡排序法函数 c语言实现冒泡排序算法

冒泡排序法C语言解释

既然要用外行的话来回答,我就打个简单的比喻吧。

公司主营业务:成都网站制作、网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联公司推出城东免费做网站回馈大家。

【比喻】

假如你是体育老师,你前面有一排随机站立的学生,10个,高矮不一。如果你要用冒泡排序的思路来让他们从低到高来排队,你可以这样。

第一遍:

从左往右,第一个跟第二个比较,高的那么换到右边,接着第2个跟第3个比较,高的再换到右边。这样以此类推,第一遍做完后,你能保证最高的那个被移动到了队列最后。比如说姚*明同学。

第二遍:

如果我是体育老师,姚*明可以去玩手机了(呵呵),因为,第一轮已经能保证他是最高的,且已经站到最后了。那么我只要对前9位同学,把第一遍的动作再做一遍,那么你就可以保证找出第2高的同学,移动到姚*明左边了。一次类推。

【短评】

所谓冒泡,就是模拟池塘里的小气泡。你可以假定小的往上跑的快,大的跑的慢。那么水底到水面上就形成了一串大小不同的泡泡。

【截图注释】

bubble_sort(A)//函数名叫冒泡排序,需要传入一个数组A作为参数

{

for(

i=1

to

N-1)//10个人,其实排9轮就好了,最后一轮就一个人不用排

{

haschang=false;//用一个逻辑性变量记录排序过程中是否有数据交换,开始为false

for(j=1

to

N-i)//每一轮要排序的人数是递减的,

i是递增,所以每一次内循环N-i递减

{

if(A[j]A[j+1])//如果A的第j个元素比后面那个大,就交换位置

{

temp=A[j];//先把A[j]做个备份

A[j]=A[j+1];//然后把A[j+1]装到A[j]中

A[j+1]=temp;//最后把原来备份的temp

放到A[j+1]

实现交换

haschange=true;//发生了数据交换,修改标识。

}

}

}

楼主好运。

C语言冒泡排序。

#includestdio.h

voidmain()

{

inta[10];

inti,j,t;

printf("input10numbers:\n");

for(i=0;i10;i++)

scanf("%d",a[i]);

for(j=0;j9;j++)/*进行9次循环实现9趟比较*/

for(i=0;i9-j;i++)/*在每一趟中进行9-j次比较*/

if(a[i]a[i+1])/*相邻两个数比较,想降序只要改成a[i]a[i+1]*/

{

t=a[i];

a[i]=a[i+1];

a[i+1]=t;

}

printf("thesortednumbers:\n");

for(i=0;i10;i++)

printf("%d",a[i]);

}

扩展资料:

冒泡排序算法的运作

1、比较相邻的元素。如果第一个比第二个大(小),就交换他们两个。

2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大(小)的数。

3、针对所有的元素重复以上的步骤,除了最后已经选出的元素(有序)。

4、持续每次对越来越少的元素(无序元素)重复上面的步骤,直到没有任何一对数字需要比较,则序列最终有序。

简单的表示

#includestdio.h

voidswap(int*i,int*j)

{

inttemp=*i;

*i=*j;

*j=temp;

}

intmain()

{

inta[10]={2,1,4,5,6,9,7,8,7,7};

inti,j;

for(i=0;i10;i++)

{

for(j=9;ji;j--)//从后往前冒泡

{

if(a[j]a[j-1])

{

swap(a[j],a[j-1]);

}

}

}

for(i=0;i10;i++)

{

printf("%d\n",a[i]);

}

return0;

}

参考资料来源:冒泡排序-百度百科

C语言冒泡排序

C语言冒泡排序法的排序规则:将被排序的记录数组R[1..n]垂直排列,每个记录R看作是重量为R.key的气泡。根据轻气泡不能在重气泡之下的原则,从下往上扫描数组R:凡扫描到违反本原则的轻气泡,就使其向上"飘浮"。如此反复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。初始 R[1..n]为无序区。第一趟扫描 从无序区底部向上依次比较相邻的两个气泡的重量,若发现轻者在下、重者在上,则交换二者的位置。即依次比较(R[n],R[n-1]),(R[n-1],R[n-2]),…,(R[2],R[1]);对于每对气泡(R[j+1],R[j]),若R[j+1].key void sort(int *a,int len) {int i=0; int j; int t; for(i=0;ia[j+1]) { t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } } int main(int argc, char *argv[]) { int a[10]={ -999,2,3,77,12,88,0,-8,99,100 }; int i=0; sort(a,10); for(i=0;i10;i++) { printf("%d ",a[i]); } return 0; }

C语言冒泡排序法代码

冒泡排序是排序算法的一种,思路清晰,代码简洁,常被用在大学生计算机课程中。“冒泡”这个名字的由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。这里以从小到大排序为例进行讲解。基本思想及举例说明

冒泡排序的基本思想就是不断比较相邻的两个数,让较大的元素不断地往后移。经过一轮比较就,选出最大的数;经过第2轮比较,就选出次大的数,以此类推。下面以对 3 2 4 1 进行冒泡排序说明。

1.这个算法用rand函数产生新的要排序的数据,与已有的有序数列中的数据依次比较,如果遇到比他大的数据,就从该数据开始,一直交换到末尾,达到一个插入的效果。从而形成有序的数列。

2.此外,只用rand函数并不能达到真正随机的效果。如果要实现真正随机的效果,还要配合srand函数才行。

3.具体代码如下:#include "stdio.h"#include "stdlib.h"void main(){int a[10],temp,r; printf("请输入一个种子\n"); scanf("%d",r);srand(r); for(int i=0;i9;i++) 。


网站栏目:c语言冒泡排序法函数 c语言实现冒泡排序算法
文章网址:http://cdkjz.cn/article/dospeee.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220