文章插图
大家好,小龙来为大家解答以上的问题 。冒泡算法时间复杂度,冒泡法这个很多人还不知道,现在让我们一起来看看吧!
1、楼上写的代码没错 。
2、但是你写这个,和楼主在书上看到的东西没区别哈 。
【冒泡法 冒泡算法时间复杂度】3、我帮你解释一下for(j=0;j<9;j++)for(i=0;i<9-j;i++) if(a[i]>a[i+1]){t=a[i];a[i]=a[i+1];a[i+1]=t;} 这段代码是教材上的一段,首先我们分析代码,这里代码中定义的是一个占10个空间的数组a[],进行第一次外层循环,首先a[0]进行比较,和a[1]进行比较,如果a[0]>a[1]则改变a[0]的位置a[1],之后a[1]就比a[0]大,然后a[1]和a[2]进行比较,使a[2]大于a[1] , ……到a[8]和a[9]进行比较后a[9]大于a[8],从而说明a[9]此时的值在该10个数中最大;此后进行外层的第二次循环又从a[0]开始,一直到a[7]和a[8]进行比较,使a[8]在除去a[9]中的数中是第一大的数 , 是10个数中是第二大的数(只比a[9]?。?从而把数组中的第二大的数确定出来;……;逐次循环就把第一(给你描述了的),第二(给你描述了的),第三大的数(自己按我的思路自己思考)……这就是冒泡法的思路了 。
4、综上所述 , 总结下来,就是先确定第一大数,在确定第二大数,然后以此类推 。
5、你在理解的时候因该是for(i=0;i<9-j;i++)中的i<9-j难理解,你想啊第一大数确定了后,第二大的数就不需要和第一大数比较了?。ㄔ诘谝淮窝分芯腿范╝[9]是最大的数,a[8]肯定小于a[9]),就是这种思想,j是用来看此时是在比较第j+1大的数的 。
6、到此 , 应该给你讲述清楚了吧 。
7、如果还有什么问题——乐意为你解答——力所能及之处 。
8、呵呵 。
本文到此分享完毕,希望对大家有所帮助 。
推荐阅读
- 煎鱼不粘锅不破皮的正确做法视频 煎鱼不粘锅不破皮的正确做法
- 唐山生育保险补缴计算办法
- 头发没吹干头疼怎么办 8种方法去寒气治头疼
- 华为手机恢复出厂设置步骤 强制恢复出厂设置方法华为
- 关于陈敬瑄酷法案简述 陈敬瑄酷法案
- 梳头发的方法图解 梳头发的方法儿童11岁
- 关于陈抟老祖心意六合八法拳简述 陈抟老祖心意六合八法拳
- 如何减肥瘦身最快最有效 如何减肥瘦身最快方法
- 桑葚果酒的制作方法窍门 桑葚如何做果酒
- 语文阅读题的方法和技巧 高中语文阅读题的方法和技巧