冒泡排序法c语言解释,冒泡排序法C语言解释 100

2021-05-06 15:33:00 字数 4497 阅读 1825

1楼:匿名用户

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

【比喻】

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

第一遍:

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

第二遍:

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

【短评】

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

【截图注释】

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

楼主好运。

2楼:鹰的飞翔

冒泡排序是一种最简单的排序方法,通过比较相邻的元素,若发生倒序,则交换,使最大值沉到最后。

其空间复杂度为o(1),时间复杂度为o(n2)。冒泡排序是一种稳定的排序。

用于顺序或者链式存储结构,平均时间性能比直接插入差。当初始记录无序且n较大时,不宜采用此方法。

顺序表创建。

冒泡排序算法。

初始化flag为1表示数组无序,当数组无序并且数组长度大于1的时候,执行循环。

c语言冒泡排序法

3楼:匿名用户

#include//链接标准头文件

#define n 5 //定义常量n并赋值为5void main() //主函数入口

//循环结束

for(i=0;i

//从此便完成大小变量的交换,使得大值往前放} //结束内层循环

} //结外内层循环,完成排序

printf("最后排序为:\n");//在屏幕显式“最后排序为:”并换行

for(i=0;i

printf("\n"); //输出换行到屏幕,看不到什么效果,可删掉

} //结束main()函数

4楼:匿名用户

有n个数,进行n便过滤 第i遍时从第1个数起到第n-i个数止依次比较x 和 x+1两个数 如果数(x)〉(x+1)就交换他们形象一些就好象是将较大的数向下沉,每一遍都会把这一遍能遇到的最大数压倒底,这样n便之后,就形成了小到大的有序数列

5楼:匿名用户

#include

void main()

,i,j;

int temp;

for (i=0;i<4;i++)

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

}printf("\n");

} printf("\n");

printf("最后排列出的结果为:");

for(j=0;j<4;j++)

putchar('\n');

}两个相邻的数进行比较,较小的数在前面较大的数往后排(从小到大排列)执行完一次又重新排,直到所有的数都是从小到大为此,方才结束.

6楼:黄振

进来了就说下吧,c语言冒泡排序法的基本思想是:将相邻的数据元素的关键字进行比较,若前面元素的关键字大于后面元素的关键字,则将它们互换,否则不交换!

例如下面从小到大排序的源程序:

#include

#define n 5

void main();

printf("未排序的数组是:\n");

for(i = 0;i < n;i++)

for(i = 0;i

for(i = 0; i < n;i++)printf("\n");}

求解c语言冒泡排序法,两个for循环里到底是什么

7楼:匿名用户

这个应该到网上去搜索啊,不该在这问。

冒泡排序的原理就是:(升序)

依次比较相邻的2个数,把较大的值放在后面,使最后一个数变成数组中的最大值。

循环这个过程,直到所有的数据都按这个规则排列好。此时,排序完毕。

举例:3,2,5,7,1(升序)

1.3与2比较,交换,数组:2,3,5,7,12.

3与5比较,不交换,数组:2,3,5,7,13.5与7比较,不交换,数组:

2,3,5,7,14.7与1比较,交换,数组:2,3,5,1,7第一次遍历比较完成,此时,最后一个数据就是最大值了。

此后的比较,只要比较2,3,5,1即可,因为最后一个已经是最大的了。

然后再按这个规则循环。

**的话:

#include

intmain();

intlen=5;//数组长度5

//外层循环,就是按照这个算法:控制需要最多几次循环才能排序完毕for(i=0;ia[j+1])}}

}此即冒泡法排序。当然,冒泡还有一些变种,如:增加标志,如果某次循环中,没发生一次交换,则说明已经排序完毕。则结束循环,这样可以加快速度。

c语言冒泡排序法**

8楼:瘦死的小骆驼

程序如下:

#include

#include

intmain(void)}}

//输出已经排序好的数

printf("输出已经排序好的数");

for(i=0;i

程序运行结果:

随机输入十个数:

9楼:馃尰缃椾腹涓

冒泡法排序的原理是相邻的两个数进行比较,现在以“输入10个数,对它们按小到大的顺序排序”这道题,来展示冒泡法排序。

#include

int main()

printf("the sorted numbers: \n");

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

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

printf("\n");

return 0;}

10楼:高中生三

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

基本思想及举例说明

冒泡排序的基本思想就是不断比较相邻的两个数,让较大的元素不断地往后移。经过一轮比较就,选出最大的数;经过第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;i<9;i++) 。

11楼:匿名用户

#include

#include

main()

printf("按升序排列为:\n");

for(i = 0; i < 9; i++)}}for(i = 0; i < 10; i++)}

12楼:匿名用户

冒泡排序每一趟排序把最大的放在最右边。

比如:87 12 56 45 78

87和12交换:12 87 56 45 7887和56交换: 56 87 45 7887和45交换:

45 87 7887和78交换: 78 87到此第一趟排序结束,接下来的每一趟排序都是这样。

#include

voidprint(int*num,intn)voidbubble_sort(int*num,intn)print(num,n);}}

return;

}intmain()

;bubble_sort(num,5);

return0;}

13楼:信科院

intn,t;

for(inti=0;i较,因为第一个数不用和自身比较.

for(intj=0;j已经循环过i次,所以只用执行n-1-i次比较.具体你可以带入n=5来试一试,这样就清楚了.

if(a[j]

C语言用冒泡法对一维数组中数按降序进行排列

1楼 自我编程 include int main int i j num for i 0 i 10 i 2楼 原姑娘 int a 10 存储用于排序的10个数 int i int temp int label do label 0 for i 0 i 9 i if a i 0 用c语言编写,输入10...

用冒泡法对整数升序排序,输入,排序,输出分别用函数实现

1楼 题主你好,很高兴回答你的问题。这种经典的算法会有很多种语言的实现方法,你可以直接搜索下 冒泡排序 ,点开百科里面就有,随便改下就行了。希望能帮到你,望采纳 include definesize8 voidbubble sort inta intn voidbubble sort inta in...

用指针来写冒泡法排序,要求调用函数

1楼 听不清啊 include define n 10 void sort int a int main int p a n for p a p 用指针方法完成冒泡排序函数。 2楼 include void sort int a int n void output int a int n print...