关于冒泡法

王朝知道·作者佚名  2009-12-21
窄屏简体版  字體: |||超大  
 
分類: 教育/科學
 
問題描述:

如果使用冒泡法对一组数字进行比较,设此组数字的个数为N个,那么我需要反复的比较多少次?有公式吗?公式是什么?如果可以的话,请写出次公式的推导过程

參考答案:

哈哈,我还在,又来回答了!

基本思路:对尚未排序的各元素从头到尾依次依次比较相邻的两个元素是否逆序(与欲排顺序相反),若逆序就交换这两元素,经过第一轮比较排序后便可把最大(或最小)的元素排好,然后再用同样的方法把剩下的元素逐个进行比较,就得到了你所要的顺序。可以看出如果有N个元素,那么一共要进行n-1轮比较,第I轮要进行j=n-i次比较。

你是要程式还是什么?

C程式可以参考下面

C语言为例:注意哦:本例a[0]不用,只用a[1]~a[10],以符合人们的习惯,所以定义为a[11]。

main()

{

int a[11];

int i,j,k;

printf("intput 10 numbers:\n");

for(i=1;i<11;i++)

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

printf("\n");

for(i=1;i<=9;i++)

for(j=1;j<=10-i;j++)

if(a[j]>a[j+1])

{

k=a[j];a[j]=a[j+1];a[j+1]=k;

}

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

for(i=1;i<11;i++)

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

}

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航