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] 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...C语言用冒泡法对一维数组中数按降序进行排列
用冒泡法对整数升序排序,输入,排序,输出分别用函数实现
用指针来写冒泡法排序,要求调用函数