编程题0012 (from Programming Teaching Assistant (PTA))
冒泡排序
输入n
(1<=n<=10
)个整数,将它们从小到大排序后输出,要求编写函数bubble()
实现冒泡排序算法。
函数接口定义:void bubble (int a[ ], int n);
其中, a
为数组,n
为数据个数。
裁判测试程序样例:
#include <stdio.h>
void bubble (int a[ ], int n);
int main(void)
{
int n, a[10];
int i;
scanf("%d", &n);
for (i=0; i<n;i++)
scanf("%d",&a[i]);
bubble(a,n);
for (i=0; i<n; i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
/* 请在这里填写答案 */
输入样例:
8
7 3 66 3 -5 22 -77 2
输出样例:
-77 -5 2 3 3 7 22 66
Answer:
void bubble (int a[ ], int n){
int tmp = 0;
for(int i=0; i<n; i++){
for(int j=n-1; j>i; j--){
if(a[j]<a[j-1]){
tmp = a[j-1];
a[j-1] = a[j];
a[j] = tmp;
}
}
}
}
网友评论