C语⾔冒泡排序(起泡法)
C语⾔冒泡排序(起泡法)
1. 冒泡法排序是C语⾔中较简单的 排序算法 的 。
2. 定义:它重复地⾛访过要排序的元素列,依次⽐较两个相邻的元素,让较⼤的元素逐渐往后移动(交换两个元素的值),直到数组的
末尾。如此反复,直到没有可以交换的元素,(即从⼩到⼤排序好)。
3. 思路:
有n个数,每轮替换⼀个数,假设最⼤的数在第⼀个,则⼀共需要替换n-1轮;此时最⼤数已经在最下⾯,
所以第⼆轮替换少⼀轮,以此类推;
在函数和数组中
/*对输⼊的数进⾏从⼩到⼤排序*/
#include<stdio.h>
void Bubble(int foam[]);//冒泡排序
int main()
{
int froth[10];
int i;
for(i=0;i<=9;i++)//动态赋值
{
scanf("%d",&froth[i]);
}
Bubble(froth);//数组址传递
return0;
}
void Bubble(int foam[])
{
int t;
int j,k;
for(j=0;j<9;j++)//进⾏9轮循环
{
for(k=0;k<9-j;k++)//减去循环的轮数
{
if(foam[k]>foam[k+1])//假设前⾯的数⼤于后⾯的数,如果真,则替换;
{
t = foam[k];
foam[k]= foam[k+1];
foam[k+1]= t;
}
}
}
putchar('\n');
for(j=0;j<=9;j++)//输出替换好的值
{
printf("%3d",foam[j]);
}
}
在数组中
#include<stdio.h>
void main()
{
int a[8];//定义数组
int i,k;
int t;//替换变量
printf("输⼊8个整数:"); for(i=0;i<=7;i++)//数组赋值{
c语言的冒泡排序算法scanf("%d",&a[i]);
}
for(k=0;k<7;k++)
{
for(i=0;i<7-k;i++)
{
if(a[i]>a[i+1])
{
t = a[i];
a[i]= a[i+1];
a[i+1]= t;
}
}
}
for(i=0;i<=7;i++)//输出
{
printf("%d\n",a[i]);
}
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论