网站建设资讯

NEWS

网站建设资讯

c语言的函数冒泡法 c++冒泡函数

C语言简单冒泡法程序

1、打开Visual stdio软件,在空项目里新建一个c语言程序空文件:

成都创新互联成立与2013年,先为尼元阳等服务建站,尼元阳等地企业,进行企业商务咨询服务。为尼元阳企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

2、弹出的窗口选择C++文件,将文件扩展名改为“.c”点击添加完成新建c文件,之后就可以编写程序了:

3、这里从数组头部开始,不断比较相邻的两个元素的大小,让较大的元素逐渐往后移动(交换两个元素的值),直到数组的末尾,经过一轮的比较,就可以找到最大的元素,并将它移动到最后一个位置,然后依次类推直到数组的最后一个数比较完,最后输出结果;

4、最后需要执行程序,按下crtl+F5弹出程序的执行结果,就可以看到排序后的结果了:

关于C语言冒泡算法的详解

冒泡法又称起泡法,属于交换排序.假设待排序数组a的长度是n,排序过程如下:

1)令i=0

2)另j=n-1(从最后一个元素开始)

3)比较a[j-1]与a[j],若a[j-1]a[j],则把它们交换

4)若ji,则令j--,转到3),否则转到5)

5)若in-1,则令i++,转到2),否则转到6)

6)完成排序

C语言冒泡法

#includestdio.h

void main()

{

int a[10];

int i,j,t;

printf("input 10 numbers:\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("the sorted numbers:\n");

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

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

}

扩展资料:

冒泡排序算法的运作

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

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

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

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

简单的表示

#include stdio.h

void swap(int *i, int *j)

{

int temp = *i;

*i = *j;

*j = temp;

}

int main()

{

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

int i,j;

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

{

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

{

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

{

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

}

}

}

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

{

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

}

return 0;

}

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

c语言冒泡法

冒泡冒泡就像气泡往上冒,就是选出大数将它沉入水底,然后挨个相邻两数比较,较大的数就换到后面,小数像气泡一样往上冒,直到比较到最后,使得最大数在最后

c语言中冒泡法是什么意思?

冒泡法是一种排序方法

冒泡法5 4 3 2 1

比如上面这5个数字我们把它按照由小到大的顺序排列,

从前往后相临两位比较大小,如果前一位比后一位大就把它俩

换位,5比4大就把5和4换位,得到45321

5又比3大 5和3换位 得到43521 依次类推最后得到

43215 这样就把最大的一个数字移到最后面了

然后不看5 ,剩下4321 再用上面的方法把4移动到最后

得到 32145 在不看45 剩下321 把3移动到

最后,依此类推。

最终得到12345

这就是冒泡法,是计算机编程排序中最简单快捷的方法。

除此意外我还能写出许多排序方法,但是效率上都不如冒泡法

至于为什么叫冒泡法呢,你把这几个数字竖起来看

1

2

3

4

5

把最大的数字5看成最大的泡泡,浮到最上,然后4又浮上去,依此类推

得到

5

4

3

2

1

所以形象的称为冒泡法

——————————————————————————————————

以下是C语言中十个数的冒泡法排序的代码

#includestdio.h

#includeconio.h

int main(void)

{

long arrary[9],

box=0L;

int i1=0,

i2=0;

for(i1=0;i19;i1++)

arrary[i1]=0;

printf("输入数组元素:\n");

for(i1=0;i1=9;i1++)

{

printf("%3d",i1+1);

scanf("%d",arrary[i1]);

}

for(i1=0;i1=9;i1++)

for(i2=0;i2=9-i1;i2++)

{

if(arrary[i2]arrary[i2+1])

{

box=arrary[i2+1];

arrary[i2+1]=arrary[i2];

arrary[i2]=box;

}

}

printf("\n排序后为:\n");

for(i1=0;i1=9;i1++)

printf("%3d%d\n",i1+1,arrary[i1]);

getch();

return 0;

}

c语言中的冒泡法是怎样的

其实就如其名

如下数据

5 3 2 4 1

从5开始与相邻的数字交换,大的摆右小的摆左

则第一的结果为

3 5 2 4 1

然后继续执行,直到与最后一个数据交换完毕,结束一次循环

于是的得到

3 2 4 1 5

很显然,最后一个数据时最大的,

冒泡就是这个意思,每次循环找出最大的,然后找到除这个数之外最大的,直至数组排序完毕。

其实你也可以,用一个max函数返回数组的最大值的位置,把它与最后一个数字交换

5 4 2 3 1-1 4 2 3 5

然后除掉最后一个数字,找最大值与倒数第2个数字交换。

1 4 2 3 5-1 3 2 4 5

。。以此类推


文章名称:c语言的函数冒泡法 c++冒泡函数
标题URL:http://cdweb.net/article/dodosgi.html