‘壹’ c语言中冒泡排序实现流程是什么
void bubbleSort(int arr[],int count)
{
int i = count, j;
int temp;
while(i >0)
{
for(j =0; j < i -1; j++)
{
if(arr[j]> arr[j +1])
{
temp = arr[j];
arr[j]= arr[j +1];
arr[j +1]= temp;
}
}
i--;
}
}
n个数的数列,每次比较相邻两个数,若二者顺序反了就调转过来,一直进行到数列最后一个元素,这时候最后一个元素已经得到其最终位置,对前面n-1的数的子序列重新进行上述比较交换过程,直到排列好第一个元素。
‘贰’ c语言编程冒泡
你说的嵌套定义和调用是什么意思?
2.应该是 swap 吧?假如你用的是局部变量,那函数调换的就是局部变量,这时传递进来的参数就没有被交换了。除了用全局变量,还可以用指针。
3.都是值传递,数组传递的是第一个元素的指针。
‘叁’ 你上次的程序里bubble(a,5)是什么意思
因为bubble函数里面使用的是bubble(int *a,int n); 所以需要调用函数必须要使用a的指针参数,也就是数组的首地址,后面的5是传递的数组的长度,因为是冒泡排序,所以需要长度的,a是在主函数中定义的int a[5]={2,3,4,5,6}数组。
‘肆’ C语言冒泡排序。
#include<stdio.h>
void main()
{
int a[10];
int i,j,t;
printf("input 10 numbers: ");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(j=0;j<9;j++) /*进行9次循环 实现9趟比较*/
for(i=0;i<9-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: ");
for(i=0;i<10;i++)
printf(" %d",a[i]);
}
(4)c语言中bubble是什么意思扩展阅读:
冒泡排序算法的运作
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 ", a[i]);
}
return 0;
}
参考资料来源:冒泡排序-网络
‘伍’ 冒泡排序法C语言解释。
冒泡排序是一种最简单的排序方法,通过比较相邻的元素,若发生倒序,则交换,使最大值沉到最后。
‘陆’ bubble在c语言中什么意思
*是C语言注释的起始标识。在C语言中,可以使用/**/作为注释文字的起始和结束标识,在/*和*/中间的文字,将不会被编译器处理,而只是提供给其它人阅读。/*和*/可以不处于一行。/**/注释不可以嵌套使用,即在/*和*/中间,不可以出现其它的/*和*/。
‘柒’ c语言中冒泡排序的实现原理是什么
冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。
由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。
用二重循环实现,外循环变量设为i,内循环变量设为j。外循环重复9次,内循环依次重复9,8,...,1次。每次进行比较的两个元素都是与内循环j有关的,它们可以分别用a[j]和a[j+1]标识,i的值依次为1,2,...,9,对于每一个i,
j的值依次为1,2,...10-i
‘捌’ 用用c语言编程统计输入一行字符串,bubble出现了多少次
思路:输入字符字符串后,开始遍历该字符串,遍历到第i个字符时,判断i是否是'b'字符,i+1是否是'u'字符……i+5是否是'e'字符,如果都成立则bubble的个数加1.
参考代码:
#include<stdio.h>
#include<string.h>
intmain()
{
chara[100];
inti,n,num=0;
gets(a);
n=strlen(a);
for(i=0;i+5<n;i++)
if(a[i]=='b'&&a[i+1]=='u'&&a[i+2]=='b'&&a[i+3]=='b'&&a[i+4]=='l'&&a[i+5]=='e')
num++;
printf("bubble出现的次数为:%d次!",num);
return0;
}
/*运行结果:
bubble出现的次数为:4次!
*/
‘玖’ 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语言中十个数的冒泡法排序的代码
#include<stdio.h>
#include<conio.h>
int
main(void)
{
long
arrary[9],
box=0L;
int
i1=0,
i2=0;
for(i1=0;i1<9;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;
}