当前位置: 首页 > >

数组-03. 冒泡法排序(20)

发布时间:

将N个整数按从小到大排序的冒泡排序法是这样工作的:从头到尾比较相邻两个元素,如果前面的元素大于其紧随的后面元素,则交换它们。通过一遍扫描,则最后一个元素必定是最大的元素。然后用同样的方法对前N-1个元素进行第二遍扫描。依此类推,最后只需处理两个元素,就完成了对N个数的排序。


本题要求对任意给定的K(

输入格式:


输入在第1行中给出N和K(1<=K

输出格式:


在一行中输出冒泡排序法扫描完第K遍后的中间结果数列,数字间以空格分隔,但末尾不得有多余空格。


输入样例:


6 2


2 3 5 1 6 4


输出样例:


2 1 3 4 5 6


程序:



#include


#define ARRAY_SIZE 100
int main(void) {
int a[ARRAY_SIZE];
int i, j, n, k, temp;
scanf("%d%d", &n, &k);
for(i = 0; i < n; ++i)
scanf("%d", &a[i]);
for(i = 1; i < n; ++i) {
for(j = 0; j < n - i; ++j) {
if(a[j] > a[j + 1]) {
temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
}
}
if(i == k)
break;
}
for(i = 0; i < n - 1; ++i)
printf("%d ", a[i]);
printf("%d
", a[n - 1]);
return 0;
}



友情链接: