c语言冒泡排序算法

时间:2024-01-03 23:24:38
案例一:

#include <stdio.h>

int main(void){

	int a[5];
printf("please input sort number:");
int k;
for(k=0;k<5;k++)
{
scanf("%d",&a[k]);//int类型要加&符号取地址
}
//开始排序
int n = sizeof(a)/sizeof(a[0]);
printf("数组共%d个数\n",n); int w,j; //5个数要比较5-1=4次 3》1
for(w=0;w<n-1;w++){
//printf("w=%d\n",w); 循环4次
for(j=0; j<n-1-w;j++){
if(a[j]>a[j+1]){
//大的放后面
int temp;
temp = a[j];
a[j] = a[j+1];//放最小的
a[j+1] = temp;
}
}
}
//输出 int i;
printf("数组初始化为:");
for(i=0;i<n;i++){
printf("%d",a[i]);
}
printf("\n");
return 0;
} 案例二:
#include <stdio.h>

int main(void)
{
//冒泡排序实现
int a[10] = {9,5,10,7,2,3,1,6,8,4};
int i=0,j=0;
int n = sizeof(a)/4; //外循环n-1轮
for(i=0;i<n-1;i++){
//控制冒泡
for(j=n-1;j>i;j--){
int temp;
if(a[j]<a[j-1]){
temp = a[j];
a[j] = a[j-1];
a[j-1] = temp;
}
}
}
//输出
for(i=0;i<n;i++){
printf("a[%d]=%d\n",i,a[i]);
} return 0;
}